Замена строки в ответе на необработанные данные не работает - PullRequest
0 голосов
/ 25 сентября 2018

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

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

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

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

0 голосов
/ 25 сентября 2018

Вы пытаетесь заменить специальный символ, я предлагаю вам попробовать использовать 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...