0
$restricted_images = array(
    "http://api.tweetmeme.com/imagebutton.gif",
    "http://stats.wordpress.com",
    "http://entrepreneur.com.feedsportal.com/",
    "http://feedads.g.doubleclick.net"
);

これは、特定の文字列にそのような文字列があるかどうかを知りたい画像のリストです。

例えば:

$string = "http://api.tweetmeme.com/imagebutton.gif/elson/test/1231adfa/".

"http://api.tweetmeme.com/imagebutton.gif"$restricted_images配列内にあり、変数内の文字列でもあるため、変数を単なる単語に$string置き換えます$string"replace".

それを行う方法はありますか?私は正規表現の達人ではないので、どんな助けでも大歓迎です!

ありがとう!

4

5 に答える 5

1

多分これは助けることができます

foreach ($restricted_images as $key => $value) {
    if (strpos($string, $value) >= 0){
        $string = 'replace';
    }
}
于 2012-07-11T08:56:25.023 に答える
1

なぜ正規表現?

$restricted_images = array(
    "http://api.tweetmeme.com/imagebutton.gif",
    "http://stats.wordpress.com",
    "http://entrepreneur.com.feedsportal.com/",
    "http://feedads.g.doubleclick.net"
);

$string = "http://api.tweetmeme.com/imagebutton.gif/elson/test/1231adfa/";
$restrict = false;
foreach($restricted_images as $restricted_image){
    if(strpos($string,$restricted_image)>-1){
        $restrict = true;
        break;
    }
}

if($restrict) $string = "replace";
于 2012-07-11T08:58:10.603 に答える
0

直接の文字列の一致を探しているので、正規表現は本当に必要ありません。

これを試すことができます:

foreach ($restricted_images as $url) // Iterate through each restricted URL.
{
    if (strpos($string, $url) !== false) // See if the restricted URL substring exists in the string you're trying to check.
    {
        $string = 'replace'; // Reset the value of variable $string.
    }
}
于 2012-07-11T08:57:02.397 に答える
0

これには正規表現を使用する必要はありません。

$test = "http://api.tweetmeme.com/imagebutton.gif/elson/test/1231adfa/";
foreach($restricted_images as $restricted) {
    if (substr_count($test, $restricted)) {
        $test = 'FORBIDDEN';
    }
} 
于 2012-07-11T08:59:41.460 に答える
0
// Prepare the $restricted_images array for use by preg_replace()
$func = function($value)
{
    return '/'.preg_quote($value).'/';
}
$restricted_images = array_map($func, $restricted_images);

$string = preg_replace($restricted_images, 'replace', $string);

編集:

正規表現を使用する必要がないと判断した場合 (この例では実際には必要ありません)、これらすべてのforeach()回答よりも優れた例を次に示します。

$string = str_replace($restricted_images, 'replace', $string);
于 2012-07-11T09:00:17.593 に答える