2011-03-29 4 views
0

У меня есть сценарий, который тянет в некоторый HTML на мою веб-страницу в виде таблицы. Я хотел бы заменить часть URL-адреса, содержащуюся в HTML, используя PHP preg_replace. URL-адрес содержит текст, который всегда отличается. URL-адрес не уникален на веб-странице, но тот, который я хочу заменить ТОЛЬКО, появляется перед конкретным изображением.Использование PHP preg_replace для замены значения между двумя строками

Мой (не работает, смешны и, вероятно, совершенно неправильно) пытаются до сих пор выглядит следующим образом:

$result = preg_replace('/\http://www.mysite.com/script.php?&variable=1.*\<img src="http://www.mysite.com/images/image.gif"', 'http://www.mysite.com/script.php?.*\<img src="http://www.mysite.com/images/image.gif"', $result); 

В приведенном выше примере попытки удалить &variable=1 из одного URL на странице. URL-адрес отображается много раз на странице, но только один раз перед image.gif. Часть URL-адреса, которая всегда отличается, представлена ​​.*\, чтобы соответствовать чему-либо.

Может ли кто-нибудь подготовить рабочий пример? Благодаря!

ответ

1

Я думаю, вы довольно близки, но вы забыли несколько технических вещей, таких как использование разделителей вокруг регулярного выражения («|» в приведенном ниже примере) и используя ссылки (1 и 2 доллара ниже). Если приведенный ниже код не работает, отправьте пример текста, который вы пытаетесь сопоставить.

$result = preg_replace('|http://www.mysite.com/script.php\?([^"]*)&variable=1([^<]*)<img src="http://www.mysite.com/images/image.gif"|', 'http://www.mysite.com/script.php?$1$2<img src="http://www.mysite.com/images/image.gif"', $result); 
+0

Это идеальное - сработало в первый раз - спасибо! – Matt

Смежные вопросы