ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[php] размножение текста
  #1  
Старый 16.06.2009, 11:17
FreShBY
Новичок
Регистрация: 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 разных [].

Может кто знает решение?
 
Ответить с цитированием

  #2  
Старый 16.06.2009, 11:40
FireFenix
Постоянный
Регистрация: 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>');
  }
}

?>
 
Ответить с цитированием

  #3  
Старый 16.06.2009, 11:56
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

FireFenix, омг. FreShBY, юзай:
PHP код:
<?
$words
=array('Привет','Здраствуй');
$names=array('Артём','Миша','Саша','Паша','Даша','Петя','И другие');
foreach(
$words as $word)
    foreach(
$names as $name)
        echo 
$word.', '.$name."<br>\r\n";
?>
 
Ответить с цитированием

  #4  
Старый 16.06.2009, 11:57
wildshaman
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме:
12942062

Репутация: 1550


Отправить сообщение для wildshaman с помощью ICQ
По умолчанию

mailbrush, Посмотри, в каком виде исходная строка.
 
Ответить с цитированием

  #5  
Старый 16.06.2009, 12:08
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Если учитывать исходную строку, тогда так:
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..
 
Ответить с цитированием

  #6  
Старый 16.06.2009, 12:09
FreShBY
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме:
71723

Репутация: 10
По умолчанию

А если [] Таких скобок будет в тексте неизвестное количество? Т.е. текст будет вводить каждый раз разные и разными людьми?
 
Ответить с цитированием

  #7  
Старый 16.06.2009, 12:20
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

Нет, в этом случае только две скобки. Но можно сделать анлим.
 
Ответить с цитированием

  #8  
Старый 16.06.2009, 12:29
Trieg
Познающий
Регистрация: 26.10.2007
Сообщений: 83
Провел на форуме:
394231

Репутация: 50
По умолчанию

похоже ТС хочет сделать рандомизатор текста.. ели так то вот готовый http://xbb.uz/randomizator/
 
Ответить с цитированием

  #9  
Старый 16.06.2009, 13:01
FreShBY
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме:
71723

Репутация: 10
По умолчанию

Мне нужен свой. Мне в движой свой и для своих целей.
 
Ответить с цитированием

  #10  
Старый 16.06.2009, 14:31
FreShBY
Новичок
Регистрация: 03.05.2009
Сообщений: 14
Провел на форуме:
71723

Репутация: 10
По умолчанию

Нужно каким то рекурсивным выводом делать ... а как ... не знаю
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL-Inj Finder by mr.The [Special for antichat] [PHP] mr.The PHP, PERL, MySQL, JavaScript 24 07.08.2009 01:30
Приобрету скрипт для рандома текста: синонимами, заменяющими буквы русского текста на writtengen О Работе 7 26.05.2009 12:27
[php] Отправка/сохранение данных AdR3naL1ne PHP, PERL, MySQL, JavaScript 3 18.05.2009 22:19
Размножение статей путем синонимизации. DimarikPron Белые методы раскрутки 5 07.04.2009 22:22



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ