2013-10-23 116 views
-1

如何知道如何製作PHP腳本來檢查作爲變量存儲的HTML代碼是否包含某些單詞?檢查HTML代碼是否包含單詞

爲了說明我的問題:

$html = "<p>My name is Herman</p><br><span>I like to eat hamburgers</span>"; 

例如;我需要一個PHP腳本來檢查這個變量是否包含「Herman」或「hamburger」。

謝謝你:)

+0

請告訴我們您到目前爲止所擁有的。 – Halcyon

回答

1

使用strpos

<?php 
$html = "<p>My name is Herman</p><br><span>I like to eat hamburgers</span>"; 

if(strpos($html, "Herman") !== false) { 
    echo "string found"; 
} else { 
    echo "string not found"; 
} 
?> 
+0

但是如果我想檢查多個單詞? (如同時「Herman」和「Hamburger」?謝謝:) – user2846191

+0

如果你想檢查字符串中是否存在「Herman」或「hamburger」,使用strpos($ html,「Herman」)!== false || strpos($ html,「hamburger」)!== false'只有在字符串中存在兩個單詞時,才使用'&&而不是'||'返回true。否則,請檢查這一點。 http://stackoverflow.com/questions/6284553/using-an-array-as-needles-in-strpos – MikkoP

+0

難道不是一個更簡單的方法嗎(如使用數組)? :) – user2846191

0

您應該使用函數strtolower使您的搜索大小寫不敏感,然後使用strpos。它會在haystack字符串中找到第一次搜索的數字位置,如果未找到,則返回0。

$lowhtml=strtolower($html); 
if((strpos($lowhtml, 'hamburger')!=false) && (strpos($lowhtml, 'herman')!=false)){ 
    echo "Contains"; 
}else{ 
    echo "Doesn't contain"; 
} 
+0

索引編制從零開始,因此您的答案無效。如果未找到該字符串,該函數將返回false。另外,提問者詢問了不區分大小寫的搜索嗎? – MikkoP

+0

似乎你編輯了你的答案。你不能使用'!= false'。來自PHP文檔的引用:'此函數可能返回布爾FALSE,但也可能返回一個非布爾值,其值爲FALSE。有關更多信息,請閱讀布爾部分。使用===操作符來測試這個函數的返回值.' – MikkoP

+0

是的,我有。我不太清楚如何與你溝通。還在習慣這個網站。非常感謝您的更正,並很抱歉浪費您的時間。 –

相關問題