0

タグに対してstrposを実行して<a>、2つのURLのいずれかが含まれているかどうかを確認します。

現時点では、この以下を使用しています-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>";
}
4

3 に答える 3

5

strposで2本の針を使用することはできません。しかし、あなたができることは、またはでそれを2回使用することです:

function find_excluded_url ($url) {
  return (strpos($url, "tumblr.com")!==false) || (strpos($url, "google.com")!==false);
}
于 2013-03-24T16:23:31.963 に答える
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];

これのパフォーマンス(パフォーマンスが問題になる場合)は、検索クエリの数と干し草の山の大きさによって異なります。正規表現には比較的大きなオーバーヘッドが伴いますが、テキストを1回だけ実行する必要があります。2回使用するstrposと、長い文字列ではコストがかかります。パフォーマンスが本当に問題になる場合は、文字ごとに独自のstrposを作成することもできます。しかし、これが必要かどうかは疑問です。

于 2013-03-24T16:22:42.370 に答える
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>";
于 2013-03-24T16:25:02.390 に答える