ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

16.06.2009, 11:17
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме: 71723
Репутация:
10
|
|
[php] размножение текста
Добрый день.
Хочу написать размножение текста. Но что-то не получается.
Есть строка: [Привет/Здравствуй], [Артём/Миша/Саша/Паша/Даша/Петя/И другие]
На выводе должно быть:
Привет, Артём
Привет, Миша
Привет, Саша
Привет, Паша
Привет, Даша
Привет, Петя
Привет, И другие
Здравствуй, Артём
Здравствуй, Миша
Здравствуй, Саша
Здравствуй, Паша
Здравствуй, Даша
Здравствуй, Петя
Здравствуй, И другие
Для этого написал скрипт:
Код:
$formyla = "[Привет/Здравствуй], [Артём/Миша/Саша/Паша/Даша/Петя/И другие]";
preg_match_all('/\[(.*?)\]/i', $formyla, $out);
foreach($out[1] as $key => $value)
{
$words = explode('/', $value);
foreach($words as $key2 => $value2)
{
echo str_replace("[".$value."]", $value2, $formyla)."<br>";
}
}
Но тут появилась проблема. Оно выводит:
Привет, [Артём/Миша/Саша/Паша/Даша/Петя/И другие]
Здравствуй, [Артём/Миша/Саша/Паша/Даша/Петя/И другие]
[Привет/Здравствуй], Артём
[Привет/Здравствуй], Миша
[Привет/Здравствуй], Саша
[Привет/Здравствуй], Паша
[Привет/Здравствуй], Даша
[Привет/Здравствуй], Петя
[Привет/Здравствуй], И другие
Попробовал строчку: Привет, [Артём/Миша/Саша/Паша/Даша/Петя/И другие]
Выводит: Привет, Артём
Привет, Миша
Привет, Саша
Привет, Паша
Привет, Даша
Привет, Петя
Привет, И другие
Не работает размножение если в этой строчке есть 2 разных [].
Может кто знает решение?
|
|
|

16.06.2009, 11:40
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
PHP код:
<?php
$string = '[Привет/Здравствуй], [Артём/Миша/Саша/Паша/Даша/Петя/И другие]';
preg_match_all('/\[(.*?)\]/i', $string, $match);
$action = explode('/', $match[1][0]);
$names = explode('/', $match[1][1]);
for($j = 0; $j < count($action); $j++)
{
for($k = 0; $k < count($names); $k++)
{
echo($action[$j] . ', ' . $names[$k] . '<br>');
}
}
?>
|
|
|

16.06.2009, 11:56
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
FireFenix, омг. FreShBY, юзай:
PHP код:
<?
$words=array('Привет','Здраствуй');
$names=array('Артём','Миша','Саша','Паша','Даша','Петя','И другие');
foreach($words as $word)
foreach($names as $name)
echo $word.', '.$name."<br>\r\n";
?>
|
|
|

16.06.2009, 11:57
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
mailbrush, Посмотри, в каком виде исходная строка.
|
|
|

16.06.2009, 12:08
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Если учитывать исходную строку, тогда так:
PHP код:
<?php
$string='[Привет/Здравствуй], [Артём/Миша/Саша/Паша/Даша/Петя/Другие]';
preg_match_all('#\[(.*?)\]#',$string,$match);
$words=explode('/',$match[1][0]);
$names=explode('/',$match[1][1]);
foreach($words as $word)
foreach($names as $name)
echo $word.', '.$name."<br>\r\n";
?>
FireFenix, так и не юзаешь форич.
Последний раз редактировалось mailbrush; 16.06.2009 в 14:14..
|
|
|

16.06.2009, 12:09
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме: 71723
Репутация:
10
|
|
А если [] Таких скобок будет в тексте неизвестное количество? Т.е. текст будет вводить каждый раз разные и разными людьми?
|
|
|

16.06.2009, 12:20
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
Нет, в этом случае только две скобки. Но можно сделать анлим.
|
|
|

16.06.2009, 12:29
|
|
Познающий
Регистрация: 26.10.2007
Сообщений: 83
Провел на форуме: 394231
Репутация:
50
|
|
похоже ТС хочет сделать рандомизатор текста.. ели так то вот готовый http://xbb.uz/randomizator/
|
|
|

16.06.2009, 13:01
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме: 71723
Репутация:
10
|
|
Мне нужен свой. Мне в движой свой и для своих целей.
|
|
|

16.06.2009, 14:31
|
|
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме: 71723
Репутация:
10
|
|
Нужно каким то рекурсивным выводом делать ... а как ... не знаю
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|