Как str_replace на двух матчах

0

Мне нравится заменять [HANDLE] и [HASHTAG] в том же $tweet как я могу объединить эти 2 строки?

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

--------------update

$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;
    }
}

вывод кода: hello @twitterName еще немного текста, посмотрите http://website.com Array

поэтому его не заменяет str_replace ('[HASHTAG] числом от 1/6, но отображается массив Array

  • 0
    читать инструкцию? php.net/manual/en/function.str-replace.php
  • 0
    Просто оставьте 2 отдельных строки для большей читабельности?
Показать ещё 1 комментарий
Теги:

3 ответа

1

Вы можете просто использовать такой массив:

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

Для получения дополнительной информации о str_replace() см. Руководство: http://php.net/manual/en/function.str-replace.php

И цитата оттуда:

search: поиск значения, иначе называемого иглой. Массив может использоваться для обозначения нескольких игл.

replace: Значение замены, которое заменяет найденные значения поиска. Массив может использоваться для обозначения нескольких замен.

1

Если бы я был вами, я бы сохранил две отдельные строки для лучшей читаемости кода.

$tweet = str_replace('[HANDLE]', $handle, $tweetStrings[$key]);
foreach ($tagStrings as $tag) {
    $tweet = str_replace('[HASHTAG]', $tag, $tweet);
}
  • 0
    если я использую это, то «[HASHTAG]» заменяется на «Array»
  • 0
    добавил еще немного кода
Показать ещё 2 комментария
0

Вы можете просто заменить массив:

$tweet = str_replace(
        ['[HANDLE]','[HASHTAG]'], // array with values to be replaced
        [$handle,$tagStrings],    // array with replacing values 
        $tweetStrings[$key]       // string 
); 
  • 0
    Пожалуйста, объясните свои проблемы
  • 0
    Вероятно, из-за короткого синтаксиса массива [] делающего код непригодным для использования до PHP 5.4, но, эй ... Я не понизил его. Я только понижаю голос во время полных планетарных соединений.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню