Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: заменить только слово целиком
 
 автор: dirol   (01.03.2008 в 22:29)   письмо автору
 
 

делаю

$phrase  = "За первый семестр 2007-2008 учебного года стипендии получили: «Салимовскую» - студентка 3 курса архитектурно-строительного факультета Енгуразова Галия, «Карпайскую»";

$healthy = array("Салимовскую", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase =  str_replace("".$healthy."", $yummy, $phrase);

echo "$newphrase\n";


если вот так делаю все правельно к примеру слово Салимовскую заменяется на "pizza

но если слово изменить

$healthy = array("алим", "vegetables", "fiber");

то слово Салимовскую, в тексте заменится снова на pizza. как тут сделать чтобы только найденое слово целиком заменялось а не часть найденых букв в слове .

подскажите пожалуйста

   
 
 автор: dirol   (02.03.2008 в 12:33)   письмо автору
 
   для: dirol   (01.03.2008 в 22:29)
 

Помогите пожалуйста очень надо. как сделать то

   
 
 автор: cheops   (02.03.2008 в 13:39)   письмо автору
 
   для: dirol   (01.03.2008 в 22:29)
 

Попробуйте так
<?php
$phrase  
"За первый семестр 2007-2008 учебного года стипендии получили:
 \"Салимовскую\" - студентка 3 курса архитектурно-строительного факультета 
 Енгуразова Галия, \"Карпайскую\""


  
$healthy = array("|[^\s]*алим[^\s]*|is""|vegetables|is""|fiber|is"); 
  
$yummy   = array("pizza""beer""ice cream"); 

  
$newphrase preg_replace($healthy$yummy$phrase); 

  echo 
"$newphrase\n";
?>

   
 
 автор: dirol   (02.03.2008 в 14:18)   письмо автору
 
   для: cheops   (02.03.2008 в 13:39)
 

нет заменяется всеравно слово Салимовскую на pizza, хоть и запрос идет алим

   
 
 автор: kasmanaft   (02.03.2008 в 16:31)   письмо автору
 
   для: dirol   (02.03.2008 в 14:18)
 

Тогда можно попробовать вот так:
<?php 
$phrase  
"За первый семестр 2007-2008 учебного года стипендии получили: 
 \"Салимовскую\" - студентка 3 курса архитектурно-строительного факультета  
 Енгуразова Галия, \"Карпайскую\""
;  

  
$healthy = array("|\bалим\b|is""|vegetables|is""|fiber|is");  
  
$yummy   = array("pizza""beer""ice cream");  

  
$newphrase preg_replace($healthy$yummy$phrase);  

  echo 
"$newphrase\n"
?>

\b по краям поставил. Что обозначает границу слова.

   
 
 автор: cheops   (03.03.2008 в 01:17)   письмо автору
 
   для: dirol   (02.03.2008 в 14:18)
 

Т.е. вы хотите наоборот, чтобы скрипт реагировал на алим, игнорируя слова вроде Салимовскую? Тогда следует обратиться к решению, предложенному kasmanaft.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования