Алгоритм перебора текста (генератор анкоров)

humbert
На сайте с 16.03.2006
Offline
540
1709

Интересует алгоритм перебора текстов для генерации анкоров.

Пример исходного текста

[Вася|Петя|Миша] любит [Катю|Машу|[некрасивую|красивую|] Лену]

Никак не могу придумать как обойти весь текст и сгенерировать. Помогите.

Парсинг прайс-листов, наполнение интернет-магазина товаром. (https://humbert.ru) Любая CMS (Битрикс, OpenCart, Prestashop и даже Woo Commerce )
ewg777
На сайте с 04.06.2007
Offline
225
#1

Взято из DudeTPL

preg_replace_callback('#\[\s*(.*?)\s*\]#ismu',array($this,"_process"),$src);

И в методе _process explode и далее делаешь, что хочешь.

humbert
На сайте с 16.03.2006
Offline
540
#2

ewg777, я не силен в php настолько:(

Не пойму, зачем explode то?

ewg777
На сайте с 04.06.2007
Offline
225
#3
humbert:
ewg777, я не силен в php настолько:(
Не пойму, зачем explode то?

Рубить переданное _process.

explode('|', 'Вася|Петя|Миша');

humbert
На сайте с 16.03.2006
Offline
540
#4

В общем сделал по своему, топорно, но работает

Код генерации анкоров

[Удален]
#5

страшный код .... :) как нить бы жто преукрасить.

humbert
На сайте с 16.03.2006
Offline
540
#6

bearman, ага, сам пугаюсь. Но:

1. самоучка я

2. закон программиста гласит - код работает, не трогай его:)

ewg777
На сайте с 04.06.2007
Offline
225
#7

bearman, код вообще не работает или может его просто порезало так. Но стиль, действительно, страх и ужас.

закон программиста гласит - код работает, не трогай его
Это только новичок боится рефакторинга и других страшных слов.
самоучка я
http://habrahabr.ru/blogs/php/38214/
humbert
На сайте с 16.03.2006
Offline
540
#8

Для себя давно выбрал стандарт


while($i)
{if($i>100)
{echo "OK";}
else
{$i=0;}
$i++;
}

Просто движок режет форматирование.

[Удален]
#9

humbert, лучше zend стандарт заюзайте чтоли ... у вас уг а не стандарт. каша.

могу поправить позднее, сейчас у меня "переезд" :)

[Удален]
#10

http://demos.uskoff.com/cartesian/ - результат

http://demos.uskoff.com/cartesian/?source - исходник

Алгоритм на самом деле довольно простой, хотя не самый эффективный (разбор идет изнутри наружу, из за чего приходится делать array_unique), а кода много из за реализации двух удобных функций для работы с массивами, которых почему то до сих пор нет в пхп, причем я по религиозным причинам не использую foreach с индексными массивами. for быстрее, но кода больше =)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий