Используя 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;
-1
user10203040 25 Сен 2018 в 13:38

2 ответа

Лучший ответ

Вы пытаетесь заменить специальный символ. Я предлагаю вам попробовать использовать 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;
0
Deepti 25 Сен 2018 в 10:41

Чтобы заменить шаблон строки, всегда используйте preg_replace(), и в вашем случае ответ поступает из другого источника, поэтому лучший способ заменить строку - найти определение шаблона и заменить Использование preg_replace()

Это то, что вам нужно preg_replace("([@]+)", "test", $raw_data1);

0
user10142451user10142451 25 Сен 2018 в 11:09