2014-01-07 35 views
0

我用下面的正則表達式「前面加上」該網站的所有基地址(HREF | SRC)的文件:如何修改這個正則表達式隻影響「/ ...」?

例如:http://www.mywebsite.com/basedir/

$output = preg_replace("/(href|src){1}=(\'|\")*[\/]{1}(.*)(\'|\")*/ismU", "$1=$2{$baseaddress}$3$4", $output); 

它工作正常,我也得到結果是這樣的:

src="/windows/file.png" --->

src="http://www.mywebsite.com/basedir/windows/file.png" 

但是我有一個問題,當src爲src="//fonts.googleapis.com/fonts.css" 我得到:http://www.mywebsite.com/basedir//fonts.googleapis.com/fonts.css

如何修改這個正則表達式來僅影響href|src,且開頭只有一個(1)'/ ???

謝謝。

回答

1

變化:[\/]{1}
要:\/(?!\/)

這將確保第一個斜槓後面的字符本身不是斜線。

0

試試這個:

$output = preg_replace("/(href|src){1}=(\'|\")*[\/]{1}([^\/]*)(\'|\")*/ismU", "$1=$2{$baseaddress}$3$4", $output); 

使用[^/],而不是.*