我正在<a>
标记上运行strpos,看看它是否包含两个网址中的任何一个。
目前我正在使用这个轰鸣声 - 如何设置它来检查 - tumblr.com或google.com是否存在?
function find_excluded_url ($url) {
$find = "tumblr.com"; // OR GOOGLE.COM ....
$pos = strpos($url, $find);
if ($pos === false) {
return false;
} else {
return true;
}
}
// SET URL
$url = "<a href='http://tumblr.com/my_post' rel='nofollow'>This site</a>";
// CALL FUNC
$run_url = find_excluded_url($url);
if ($run_url == true) {
echo "URL - " . $url . "<br>";
}
答案 0 :(得分:4)
你不能在strpos中使用两根针。但你可以做的是使用它两次,使用或:
function find_excluded_url ($url) {
return (strpos($url, "tumblr.com")!==false) || (strpos($url, "google.com")!==false);
}
答案 1 :(得分:0)
对于更复杂的搜索,您可能需要查看正则表达式。这可行:
$subject = 'blablabgoogle
balblabtumblrasd
blaasdgoogleadsad';
$pattern = '@(?:google\.com|tumblr\.com)@i';
$result = preg_match($pattern, $subject, $subpattern, PREG_OFFSET_CAPTURE);
if($result) echo 'Position: ' . $subpattern[0][1];
这种性能(如果性能对您来说是一个问题)取决于您拥有多少搜索查询以及您的干草堆有多大。正则表达式具有相对较大的开销,但是,它们只需要在文本上运行一次。如果您使用strpos
两次,那么使用长字符串会变得很昂贵。如果性能确实是一个问题,你也可以编写自己的strpos,每个字符都有字符。但是,我怀疑这是必要的。
答案 2 :(得分:0)
function find_excluded_url ($url, $searchURL) {
$pos = strpos($url, $searchURL);
if ($pos === false) {
return false;
} else {
return true;
}
}
// SET URL
$url = "<a href='http://tumblr.com/my_post' rel='nofollow'>This site</a>";
// CALL FUNC
$run_url = find_excluded_url($url, 'google.com');
if ($run_url == true)
echo "URL - " . $url . "<br>";
$run_url = find_excluded_url($url, 'tumblr.com');
if ($run_url == true)
echo "URL - " . $url . "<br>";