我想知道如何找到作爲HTML文檔一部分的短語/單詞。例如,如果我有以下文件:使用PHP在HTML之間查找短語/單詞
<a href="#">This is a test</a><b>Another test</b>
我的目標是要找到「這是一個測試」和「另一項測試」,並用別的東西代替它。請注意,這些是示例短語,可能包含數字或符號符號。
任何幫助將是偉大的。
謝謝
我想知道如何找到作爲HTML文檔一部分的短語/單詞。例如,如果我有以下文件:使用PHP在HTML之間查找短語/單詞
<a href="#">This is a test</a><b>Another test</b>
我的目標是要找到「這是一個測試」和「另一項測試」,並用別的東西代替它。請注意,這些是示例短語,可能包含數字或符號符號。
任何幫助將是偉大的。
謝謝
你可以使用PHP的strip_tags($string, $tagsToRemove)
$justText = strip_tags('<a href="#">This is a test</a><b>Another test</b>');
然後你就會有文本,所以你可以使用str_replace("new text", $justText);
您可能需要打破它使用第二儘管如此,參數strip_tags()
以保持標籤獨立。
$html = '<a href="#">This is a test</a><b>Another test</b>';
$anchorText = strip_tags($html, '<a>');
$paraText = strip_tags($html, '<p>');
$html = str_replace("new anchor text", $anchorText);
$html = str_replace("new paragraph text", $paraText);
我會去了解一下像str_replace()
Here說明如何刪除所有的HTML的東西(HTML標籤,腳本,CSS),然後用str_replace函數可以代替任何你想要的。
如果這是一個選項,以做客戶端,我建議jQuery replaceWith()
這裏的關鍵是使用正則表達式,在某種意義上,解析HTML ...
所以,你會使用方法:
<?php
$str = "<a href =\"\">Hello</a>"; //The string to search
preg_match('/(<.+>)??.+(<\/.+>)??/i',$str,$match); //Find all occurences and store the tag content in an array called $match
echo $match[0]; //Echo the first value
?>
這基本上搜索輸入字符串(您想設置爲頁面的HTML),並返回標記之間的文本的每場比賽的數組中的值。對於第一個標記,值將存儲在$ match [0]中,第二個存儲在$ match [1]中,等等。
它通過首先找到以HTML標記開頭並以一個HTML標記,但不選擇任何標記,只保留選中的內容。
希望這會有所幫助!
Braeden
解析HTML的關鍵實際上不是使用正則表達式,而是正確的HTML/XML解析器。 –
但是,如果他只是獲取標記內容,那麼爲什麼只要使用簡單的正則表達式就可以加載解析器? – BraedenP
,因爲它不是一個簡單的正則表達式。嘗試爲他的例子找到一個工作的(你的不),然後找到一個'This is Another test a test'。 –
我覺得他要尋找替換的文本不剝離標籤 –
+1與菲爾Pafford,並使用strip_tag後可能很難unstrip它,如純文本一些字符可能變成「<" and "> 「符號。 –
strip_tags不會讓'<' and '>'字符神奇地出現,你知道的。 – nickf