-1
我有,我怎麼只能無http://,https://
匹配的問題。PHP的正則表達式匹配唯一沒有的http://,https://開頭
這是我的正則表達式現在選擇所有鏈接,並與我的完整URL取代。
但問題是,當我$string
得到了正確的URL,但替換功能送花兒給人以http://example.comhttp://google.com/test
$string = 'test <a href="/web/data.html">link1</a> <a href="http://google.com/test">link2</a>';
$pattern = "/<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>/siU";
$response = preg_replace_callback($pattern, function ($matches) {
return '<a href="http://example.com'.$matches[2].'">'.$matches[3].'</a>';
}, $string);
var_dump($response);
取代它現在的結果是:
test <a href="http://example.com/web/data.html">link1</a> <a href="http://example.comhttp://google.com/test">link2</a>
的預期結果是:
test <a href="http://example.com/web/data.html">link1</a> <a href="http://google.com/test">link2</a>
感謝。