Мне нравится заменять [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
Вы можете просто использовать такой массив:
$tweet = str_replace(array('[HASHTAG]', '[HANDLE]'), array($tagStrings, $handle), $tweetStrings[$key]);
Для получения дополнительной информации о str_replace()
см. Руководство: http://php.net/manual/en/function.str-replace.php
И цитата оттуда:
search: поиск значения, иначе называемого иглой. Массив может использоваться для обозначения нескольких игл.
replace: Значение замены, которое заменяет найденные значения поиска. Массив может использоваться для обозначения нескольких замен.
Если бы я был вами, я бы сохранил две отдельные строки для лучшей читаемости кода.
$tweet = str_replace('[HANDLE]', $handle, $tweetStrings[$key]);
foreach ($tagStrings as $tag) {
$tweet = str_replace('[HASHTAG]', $tag, $tweet);
}
Вы можете просто заменить массив:
$tweet = str_replace(
['[HANDLE]','[HASHTAG]'], // array with values to be replaced
[$handle,$tagStrings], // array with replacing values
$tweetStrings[$key] // string
);
[]
делающего код непригодным для использования до PHP 5.4, но, эй ... Я не понизил его. Я только понижаю голос во время полных планетарных соединений.