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

Форум PHP

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

 

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

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

тема: Как ограничить работу str_replace() лишь одной заменой?
 
 автор: serg_b   (12.03.2012 в 15:46)   письмо автору
 
 

Функция str_replace() Заменяет все вхождения старого текста на новый текст. А как быть если мне нужно заменить только первое вхождение текста?
Заранее спасибо

  Ответить  
 
 автор: Lotanaen   (12.03.2012 в 16:15)   письмо автору
 
   для: serg_b   (12.03.2012 в 15:46)
 

попробуйте strpos() и substr_replace() либо через функции регулярных выражений preg_replace()

  Ответить  
 
 автор: Sfinks   (12.03.2012 в 22:13)   письмо автору
 
   для: serg_b   (12.03.2012 в 15:46)
 

в 5ой версии пхп у str_replace появился 4ый аргумент (int) count который и указывает сколько замен производить.

  Ответить  
 
 автор: serg_b   (14.03.2012 в 14:51)   письмо автору
 
   для: Sfinks   (12.03.2012 в 22:13)
 


<?php
$string 
"раз раз раз, Вася передаст";
$string str_replace("раз""<b>раз</b>"$string1);
echo 
$string;
?>

Выдает фатальную ошибку, версия PHP 5.2, как быть?
Fatal error: Only variables can be passed by reference in Z:\home\example\www\string.php on line 3

  Ответить  
 
 автор: task   (14.03.2012 в 15:18)   письмо автору
 
   для: serg_b   (14.03.2012 в 14:51)
 

count, это количество произведенных замен, а не сколько раз заменить вхождение.
Возвращаемое значение по ссылке, потому и выдает ошибку.

  Ответить  
 
 автор: Sfinks   (14.03.2012 в 15:48)   письмо автору
 
   для: serg_b   (14.03.2012 в 14:51)
 

Сорри, 4ый аргумент не на то указывает. Я ман до нужного места не дочитал ) Task прав.

  Ответить  
 
 автор: Sfinks   (15.03.2012 в 06:29)   письмо автору
 
   для: Sfinks   (14.03.2012 в 15:48)
 

Вот в прег_реплэйс этот аргумент есть:
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
limit - Максимально возможное количество замен каждого шаблона для каждой строки subject. По умолчанию равно -1 (без ограничений).

  Ответить  
Rambler's Top100
вверх

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