2011-03-29 204 views
0

我有一個腳本,以表格的形式將一些HTML拉到我的網頁。我想用PHP preg_replace替換HTML中包含的部分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); 

上面的例子嘗試從網頁上的單個URL刪除&variable=1。該網址多次出現在網頁上,但僅在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 2011-03-29 14:54:35

相關問題