[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: str_replace без повторного прохода
Страницы: 1, 2, 3
Zzepish
str_replace осуществряет проход с лева на право.
Фишка в чем:
есть такое:
$string = '{Zzepish_module}';
$string = str_replace(['{Zzepish_module}','{Zz_m}', 'b'], ['{Zz_m}','{','c'],$string);


Выдаст: {
ВОпрос - как мне сделать, чтоб не было повторного прохода? Т.е. единоразово заменил данный сегмент строки и пошел дальше?
Kusss
$string = str_replace(['{Zz_m}', '{Zzepish_module}', 'b'], ['{', '{Zz_m}', 'c'],$string);

он же проходит по циклу каждый элемент.
chee

<?php
$string = '{Zzepish_module}';
$string = strtr ($string, array(
'{Zzepish_module}' => '{Zz_m}',
'{Zz_m}' => '{',
'b' =>'c'
));
echo $string;

Вроде работает

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Zzepish
Я сейчас поясню, что я делаю,и , может, будет более понятно:
я делаю модули на странице (в шаблонах) в виде {vendorName_module}. Т.е. если интеграции модулей на страницу мне нужно, чтоб один модуль не переписывал текста другого модуля 9если это будет какой-то текст)
Игорь_Vasinsky
preg_replace() может нужное количество замен производить. (если в мануале все аргументы глянуть:))

я когда-то пили модуль перелинковки для симплы https://www.fl.ru/users/Igor_Vasinsky/viewp...p?prjid=5194567 - вот там и познокомились со всеми аргументами

_____________
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
chee
Zzepish, шаблонизатор что-ли пишешь, брось ты это дело, бесполезно же.


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Zzepish
Игорь_Vasinsky
Я про эту фишку знаю. беда в том, что я не хочу задействовать регулярки, ради скорости работы скрипта(((

chee
Именно! Шаблонизатор)))
А чего бесполезно?
Игорь_Vasinsky
Zzepish
ну это же обширная тема, есть и смарти и твиг - кто-то пользует - кто-то решает избежать потери памяти при их использовании

пиши-пиши - для опыта вреда не будет.

_____________
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
chee
Цитата (Zzepish @ 11.04.2016 - 21:32)
А чего бесполезно?

Ну потому, что его написание не даёт ни опыта, ни каких то ощутимых удобств, говорю как велосипедист со стажем. Лучше или использовать нативный шаблонизатор (готовые уже кстати есть), либо монстров типа Twig, Smarty и прочее. Если ты пишешь на заказ, то нативный лучше, если универсальную CMS, то лучше Twig или Smarty. Хотя я для своей выбрал нативные шаблоны.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Zzepish
Игорь_Vasinsky
я думаю на крайний случай заюзать preg_replace_callback. Вроде он работает, как мне надо!

chee
я просто пишу свой движок на ООП (ради интереса + закрепления знаний). Вот мне интересно написать абсолютно все с нуля)
Игорь_Vasinsky
Цитата
Лучше или использовать нативный шаблонизатор (готовые уже кстати есть),

чем тебе не опыт?) я тоже прошёл через это и щас комфортно, даже более чем чувствую себя именно с нативным синтаксисом в tpl шаблонах.

_____________
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
Zzepish
Игорь_Vasinsky
Смотри:
у меня есть Общий шаблон (<head>, <html>, css и прочая туфта); Есть шаблон страницы. В шаблоне страницы есть как html, так и что-то в стиле: {title}. Мне вот эти {title} надо заменить на модульные (или как мне вздумается). Беда всей херотени в том, что str_replace работает по циклу(
chee
Игорь_Vasinsky, ой всё, вы видимо с ним на одной волне.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Игорь_Vasinsky
Zzepish
я и не спорил)

chee
кто волна? laugh.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
chee
Цитата (Игорь_Vasinsky @ 11.04.2016 - 22:40)
велосипед велосипедный будет всегда велосипедом

я ничего не понял. БОЛЬШЕ ВЕЛОСИПЕДОВ БОГУ ВЕЛОСИПЕДОВ.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

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