使用PHP CURL,我正在调用一个URL,并且从一页得到一些响应,现在我需要从该响应中替换一个字符串,但是它不起作用,请检查下面的代码。
$url = "My URL";
$url1 = $url1 = str_replace(' ', '%20', $url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$raw_data1 = curl_exec($ch);
curl_close($ch);
$raw = str_replace('@', 'Test', $raw_data1);
echo $raw;
答案 0 :(得分:0)
您正在尝试替换特殊字符,我的建议是您应该尝试使用preg_replace()
而不是str_replace()
尝试以下示例:
$url = "My URL";
$url1 = $url1 = str_replace(' ', '%20', $url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$raw_data1 = curl_exec($ch);
curl_close($ch);
$raw = preg_replace("([@]+)", "Test", $raw_data1);
echo $raw;
答案 1 :(得分:0)
要替换字符串模式,请始终使用preg_replace()
,在您的情况下,响应来自其他来源,因此替换字符串的更好方法是找到定义模式并替换为preg_replace()
>
这就是您需要的preg_replace("([@]+)", "test", $raw_data1);