Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена по маске, С разбиением строки. 
V
    Опции темы
rodendron
Дата 3.2.2006, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 22.3.2005

Репутация: нет
Всего: нет



Всем доброй ночи.
Подскажите пожалуйста как произвести следующую замену.
Имеется строка.
My name is Jack.

Ввожу в форму поиска "My name", получаю "<b>My name</b> is Jack.".
Ввожу name, получаю "My <b>name</b> is Jack".
Так я умею делать с помощью обычной замены.

А вот как реализовать следующее - ввожу "name Jack", следовательно получаю:
"My <b>name</b> is <b>Jack</b>".
То есть когда мне надо заменить фразу в строке, но которая идет не по порядку.
Заранее благодарен за помощь в решении данного вопроса.
PM MAIL   Вверх
Ciber SLasH
Дата 3.2.2006, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 3
Всего: 67



Код

$str = 'name Jack';
echo preg_replace("/^name (\w+)$/", "My <b>name</b> is <b>$1</b>", $str);

PM   Вверх
rodendron
Дата 7.2.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 22.3.2005

Репутация: нет
Всего: нет



Не совсем правильно я так понял...
Строка же тоже может динамически меняться, а у тебя зашито My <b>name</b> is <b>.
Или я не прав?
PM MAIL   Вверх
Akina
Дата 7.2.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 5
Всего: 454



Гм... а кто мешает пошинковать шаблон на слова и выполнить замену несколько раз?

"name Jack" -> "name" "Jack"

My name is Jack. ("name") -> My <b>name</b> is Jack.
My <b>name</b> is Jack. ("Jack") -> My <b>name</b> is <b>Jack</b>.

?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
smartov
Дата 7.2.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



Код

//исходная строка
$source = 'My name is Jack';

//пришло из формы
$get = "name Jack";

$getArray = explode(" ", $get);

$result = $source;

foreach ($getArray as $item)
{
    $result = str_replace($item, '<b>'.$item.'</b>', $result);
} 

echo $result;



Только смотри сразу str_replace заменит все вхождения слова Jack например на <b>Jack</b>
Если тебе надо заменить только одно первое или еще как-нить - смотри хелп по функции str_replace() или preg_replace().

Это сообщение отредактировал(а) smartov - 7.2.2006, 12:03
PM MAIL   Вверх
rodendron
Дата 7.2.2006, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 22.3.2005

Репутация: нет
Всего: нет



smartov
Супер! Спасибо огромное!
Сейчас осталось только найти функцию замены, нечувствительную к регистру. А это эта регистр не понимает smile
Добавлено @ 13:39
Поставил eregi_replace.
Вроде работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.