powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] str_replace массив на массив
14 сообщений из 14, страница 1 из 1
[php] str_replace массив на массив
    #38599320
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть значит функция:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$str  = "Город X страна Y возраст Z";
$c = array("X", "Y", "Z");
$n = array("Дос", "Абидос", "99 лет");


$newstring = str_replace($c, $n, $str); // Так работает!

$newstring = str_replace($c, '<b>'.$n.'</b>', $str); // А вот так нет..









Нужно в общем замену как-то подсветить, выделить, а что-то не выходит...
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599339
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goror,

Конкатенция строки с массивом - это сильно! :-)
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599347
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$newstring = str_replace($c, '<b>'.$n.'</b>', $str);
и не должно, вы оборачиваете массив а не элементы
лучше будет преобразовать массив $n (через foreach или array_walk или ещё как),
а потом сделать str_replace
это можно сделать и сразу при создании массива $n
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599363
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-$newstring = str_replace($c, '<b>'.$n.'</b>', $str);
и не должно, вы оборачиваете массив а не элементы
лучше будет преобразовать массив $n (через foreach или array_walk или ещё как),
а потом сделать str_replace
это можно сделать и сразу при создании массива $n


Как будет лучше? По проще?

Не хочется хранить такой массив: $n = array("<b>Дос</b>", "<b>Абидос</b>", "<b>99 лет</b>");

Желательно, в одно месте прописать: <b>$n</b>
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599371
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проще сделать через css :)
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599376
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-проще сделать через css :)

Например? Там не единичная замена идёт, там сканер и сотни замен нужно делать на ходу..
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599379
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
php для данных, css для красоты
у тебя же на основе этого массива будет генерится какая то html-разметка,
например дивы или инпуты, туда и пристегнуть через класс
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599389
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-php для данных, css для красоты
у тебя же на основе этого массива будет генерится какая то html-разметка,
например дивы или инпуты, туда и пристегнуть через класс


Я что-то пока не догоняю как?

Ну да, на основе выполнения данной функции будет формироваться html страница, но если я не могу даже теги <b> подставить, как я класс туда подставлю?
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599412
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$str = "Город X страна Y возраст Z";
$c = array("X", "Y", "Z");
$n = array("Дос", "Абидос", "99 лет");
function set_bold($elem) {
return "<b>".$elem."</b>";
}
$n = array_map("set_bold", $n);
$newstring = str_replace($c, $n, $str);
echo $newstring;

но мне постановка задачи сильно не нравится
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599423
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-$str = "Город X страна Y возраст Z";
$c = array("X", "Y", "Z");
$n = array("Дос", "Абидос", "99 лет");
function set_bold($elem) {
return "<b>".$elem."</b>";
}
$n = array_map("set_bold", $n);
$newstring = str_replace($c, $n, $str);
echo $newstring;


То что надо!
Спасибо!




-k2-но мне постановка задачи сильно не нравится
Что именно не нравиться? Как сделал бы ты?
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599442
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я не знаю всей задачи, потому не могу сказать
ну и в любом случае тяпница - хороших выходных :)
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599450
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-k2-а я не знаю всей задачи, потому не могу сказать
ну и в любом случае тяпница - хороших выходных :)

Хороших выходных!

И ещё раз спасибо!
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599677
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Goror,

по поводу "как сделать" моё личное мнение - если вёрстка оказывается в коде, значит или никакой шаблонизатор не используется (а это в приниципе не круть, так как всё будет мешаться с логикой), или структура выстроена неверно (часть данных из шаблона переплыла в файл логики).

Из приведённого кода делаю предположения что шаблонизаторы не используются. Если прав - значит надо бы что-то хотя бы простое, но использовать (мне например они все чем-то не нравятся, потому я в своё время писал себе простенький сам).
Если ошибаюсь и что-то таки используется, ну тогда просто пересмотреть структуру, так как "Город X страна Y возраст Z" должно быть отдельным шаблоном и в него должны вставляться нужные переменные... а Если это часть шаблона, то там и форматирование... то есть "Город <b>X</b> страна <b>Y</b> возраст <b>Z</b>".

Это моё личное... субботнее мнение :)
...
Рейтинг: 0 / 0
[php] str_replace массив на массив
    #38599803
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

вот-вот, точно :)
самое удобное на мой вкус, данные отсылать на клиента через json,
а там генерить разметку через jQuery templates
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] str_replace массив на массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]