Используя 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;






Вы пытаетесь заменить специальный символ. Я предлагаю вам попробовать использовать 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;
Чтобы заменить шаблон строки, всегда используйте preg_replace(), и в вашем случае ответ поступает из другого источника, поэтому лучший способ заменить строку - найти определение шаблона и заменить Использование preg_replace()
Это то, что вам нужно preg_replace("([@]+)", "test", $raw_data1);
Не могли бы вы опубликовать содержимое
$raw_data1?