[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запихнуть субстринг в стринг
Страницы: 1, 2
MatrixGod
всем привет!

помогите решить головоломку ))

у меня есть стринг1 - обычный текст.
есть еще и стринг2 - тоже обычный текст (может состоять и из одного слова).

надо стринг2 рандомально запихнуть в стринг1.

естественно не по середине какого-то слова а только там где имеются пробелы.

подскажите как, а то я запарился )))

крутил с этими двумя: substr_replace и array_splice...
чет не получаеццо у меня.

заранее спасибо!
Игорь_Vasinsky
 $str = 'надо стринг2 рандомально запихнуть в стринг1. естественно не по середине какого-то слова а только там где имеются пробелы. подскажите как, а то я запарился )))';
$word = '<u>затычка</u>';

$matches = preg_split("#\s#uU", $str);

$count_null = count($matches)-1;

$rand = array_rand($matches);

$matches[$rand] = $matches[$rand].' '.$word;

echo implode(' ', $matches);


решение не претендует на звание самого элегантного

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
Игорь_Vasinsky, и что работает спам машина?


_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
мне кажется это не спам генератор - а контент генератор) хотя и от того и от того - нам, как серфенгистам интернета и любителям погуглит - они ни чего хорошего не сулит.

просто размялся.

странно, почему-то preg_replace не смог запустить

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Игорь_Vasinsky, а почему не простой explode?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
аааа.... ну это я же с preg_replace начал))) вот плавно и ушел на preg_split() laugh.gif
канешь с explode() smile.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
вариант с explode пишется за 30-цать секунд, естественно выкладывать сюда этот "шедевр" мне религия не позволяет smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
Winston
:D
$str = 'надо стринг2 рандомально запихнуть в стринг1. естественно не по середине какого-то слова а только там где имеются пробелы. подскажите как, а то я запарился )))';
$word = '<u>затычка</u>';
$r = mt_rand(0, mb_strlen($str));
echo preg_replace("#(.{0,$r})\s+#u", "$1 $word ", $str, 1);
Valick
пока только мой код работает
Игорь_Vasinsky, Winston вы свой код запускали?


_____________
Стимулятор ~yoomoney - 41001303250491
Winston
Цитата (Valick @ 20.06.2013 - 11:36)
Winston вы свой код запускали?

Да, а в чем проблема? smile.gif У меня он работает как нужно...
Игорь_Vasinsky
может он -u не видит ?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
glock18
Цитата (Valick @ 20.06.2013 - 08:36)
пока только мой код работает
Игорь_Vasinsky, Winston вы свой код запускали?

Я не запускал. Но на первый взгляд должны бы работать. Мне лично в голову сразу пришла связка explode+array_rand+array_splice+implode
Valick
Winston, просто я запустил ваш код и у меня "чистый лист", вариант Игоря выдает затычку все время на последнем месте. Я сам достаточно часто пишу код из головы без проверки, потому и поинтересовался у вас. Позже разберусь почему у меня не работает.


_____________
Стимулятор ~yoomoney - 41001303250491
Valick
glock18, если можно скинь в личку вариант
Цитата
explode+array_rand+array_splice+implode
Winston
Цитата (Valick @ 20.06.2013 - 13:30)
вариант Игоря выдает затычку все время на последнем месте

Похоже это у вас какие-то проблемы, т.к. код Игоря у меня работает нормально
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.