2017-10-19 349 views
0

我有以下代碼添加域名如果不存在將所有相對路徑更改爲絕對路徑的字符串。preg_replace鏈接相對路徑爲絕對路徑

preg_replace("/(href|src)\=\"([^(http|https|#|ftp)])(\/)?/", "$1=\"$domain$2", $st); 

字符串的值

<link rel="stylesheet" href="/asset/css/test.css"><link rel="stylesheet" href="/asset/css/two.css"><link rel="stylesheet" href="//upload.com/css/test3.css"> 

我需要忽略鏈接以 「//」 聲明,因爲它是。如何在preg_replace() 中添加此項,例如,如果鏈接是// somelink/somedir,則不應該修改它。 請幫助我。

回答

0

變着花樣這應該做的伎倆

preg_replace("/(href|src)\=\"([^(http|https|#|ftp|\/\/)])(\/)?/", "$1=\"$domain$2", $st);

+0

ID給出錯誤的先生警告:的preg_replace():未知的修飾詞「\」 –

+0

對此深感抱歉,我錯過了一些斜線。剛剛更新了我的答案,現在它應該工作! – Tudor

+0

它不改變單/。 –