如何在两个匹配上str_replace

时间:2015-01-31 22:12:04

标签: php

我想在同一[HANDLE]中替换[HASHTAG]$tweet如何合并这两行?

$tweet = str_replace('[HANDLE]', $handle, $tweetStrings[$key]); 
$tweet = str_replace('[HASHTAG]', $tagStrings, $tweetStrings[$key]);

--------------更新

$tagStrings = array(
0 => '1',
1 => '2',
2 => '3',
3 => '4',
4 => '5',
5 => '6'
);

foreach ($handles as $handle) {

    if(strlen($handle) > 0) {

        $key = rand(0, count($tweetStrings));

        $tweet = str_replace('[HANDLE]', $handle, $tweetStrings[$key]); 
        $tweet = str_replace('[HASHTAG]', $tagStrings, $tweet);

        echo $tweet . PHP_EOL;
    }
}

代码输出:你好 @twitterName 更多文字,看看http://website.com 数组

所以它没有用1/6之间的数字替换 str_replace('[HASHTAG] ,但显示数组

3 个答案:

答案 0 :(得分:1)

你可以使用这样的数组:

$tweet = str_replace(array('[HASHTAG]', '[HANDLE]'), array($tagStrings, $handle), $tweetStrings[$key]);

有关str_replace()的详情,请参阅手册:http://php.net/manual/en/function.str-replace.php

从那里引用:

  

搜索:   正在搜索的值,也称为针。 可以使用数组来指定多个针。

     

<强>取代:   替换找到的搜索值的替换值。 可以使用数组来指定多个替换。

答案 1 :(得分:1)

如果我是你,我会将它分为两​​行,以便更好地阅读代码。

$tweet = str_replace('[HANDLE]', $handle, $tweetStrings[$key]);
foreach ($tagStrings as $tag) {
    $tweet = str_replace('[HASHTAG]', $tag, $tweet);
}

答案 2 :(得分:0)

您可以简单地用数组替换:

$tweet = str_replace(
        ['[HANDLE]','[HASHTAG]'], // array with values to be replaced
        [$handle,$tagStrings],    // array with replacing values 
        $tweetStrings[$key]       // string 
);