Точная замена строки в php - PullRequest
0 голосов
/ 29 октября 2010

Я ищу способ заменить строку в php, которая точно соответствует теме.

Например, я получил файл с именем 'hello-world.txt', имеющий три строки:

'http://www.example.com/'
'http://www.example.com/category/'
'http://www.example.com/tag/name/'

и мне нужно заменить 'http://www.example.com/' на 'http://www.example2.com'

$string=file_get_contents('hello-world.txt');
$string=str_replace('http://www.example.com/','http://www.example2.com',$string);
echo $string;

Я получу результат, подобный следующему:

'http://www.example2.com/'
'http://www.example2.com/category/'
'http://www.example2.com/tag/name/'

Но что яна самом деле нужно что-то вроде этого:

'http://www.example2.com/'
'http://www.example.com/category/'
'http://www.example.com/tag/name/'

Пожалуйста, помогите !!!!

Ответы [ 3 ]

2 голосов
/ 29 октября 2010

Вы можете использовать preg_replace с модификатором m как:

$string=preg_replace('~^http://www\.example\.com/$~m','http://www.example2.com',$string);

Код в действии

0 голосов
/ 29 октября 2010

Либо $string=str_replace("'http://www.example.com/'", "'http://www.example2.com'", $string);, так как в вашем примере у вас есть одинарные кавычки вокруг каждой строки, или используйте preg_replace, например:

$string=preg_replace('/^http:\/\/www\.example\.com\/$/', 'http://www.example2.com/', $string);

... если эти одиночные кавычки не должны быть там. $ В конце регулярного выражения означает конец строки, а ^ означает начало строки. Периоды и / должны быть исключены, следовательно, \. и \ /

Я не проверял этот код. Вот ссылка на preg_replace () http://php.net/manual/en/function.preg-replace.php

0 голосов
/ 29 октября 2010

Сначала проверьте, является ли текущая строка тем, что вы ищете.Если нет, просто выплюни его обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...