2017-03-07 66 views
-2

我想更改網站中的所有href。php preg_match add href .html

<a href="sitename">xyz …</a> 

到:

<a href="sitename.html>xyz …</a> 

感謝您的幫助!

+0

使用的解析器。不要使用正則表達式(http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags#answer-1732454)。正如你在你自己的問題中看到的那樣,在缺少結束語的情況下,你不知道你會在HTML中找到什麼。 – LSerni

回答

-1
$content = file_get_contents('page.html'); 

$new_content = str_replace('<a href="', '<a href="sitename.html', $content); 

echo $new_content; 
+0

所有的尾隨內容仍然會在'href's中。此外,這假設所有的'href's被雙引號封裝。最好使用解析器。 – chris85

+0

謝謝。但是,這不是解決方案。 'sitename'是可變的。 – Harold

+0

您可以輕鬆地將sitename添加爲變量$ sitename。「。html」 – clearshot66

0

你可以做到這一點通過以下方式...

$hrefs = '<a href="sitename1">xyz …</a> 
<a href="sitename2">xyz …</a>'; 
$r = '/(?<=href=").*?(?=">)/'; 
$sitename = 'sitename.html'; 
$result = preg_replace($r, $sitename, $hrefs); 
echo $result; 

DEMO