Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: preg_replace()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
will123
Отправлено: 13 Октября, 2009 - 13:14:08
Post Id



Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




Что нужно изменить в паттерне preg_replace?
CODE (text):
скопировать код в буфер обмена
  1. $str = " akhs djhask hkajs h asjd ka skj</p> a jdks jd </p>";
  2. $str = preg_replace('</p>', 'tag', str, 1);


нужно заменить </p>, но выдает ошибку Warning: preg_replace() [function.preg-replace]: Unknown modifier 'p'
 
 Top
movEAX
Отправлено: 13 Октября, 2009 - 13:25:29
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Решение очень просто, и имя ему str_replace, preg_replace тебе тут не нужен.


-----
армия.. самое убогое место
 
 Top
Champion Супермодератор
Отправлено: 13 Октября, 2009 - 13:31:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




will123 у шаблона должны присутвовать ограничители. Поэтому ошибка. А для твоих целей использовать нужно, действительно, str_replace
 
 Top
will123
Отправлено: 13 Октября, 2009 - 13:48:11
Post Id



Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




делаю так
CODE (text):
скопировать код в буфер обмена
  1. $str = " akhs djhask hkajs h asjd ka skj</p> a jdks jd </p>";
  2. $str = str_replace("</p>", "tag", $str, 1);

выдает Fatal error: Only variables can be passed by reference

(Отредактировано автором: 13 Октября, 2009 - 13:50:30)

 
 Top
Champion Супермодератор
Отправлено: 13 Октября, 2009 - 13:55:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Да, по ссылке можно передавать только переменные (4й параметр). ли тебе нужно заменить только один раз?

Уже обсуждалось совсем недавно - поищи тогда.
 
 Top
movEAX
Отправлено: 13 Октября, 2009 - 13:55:48
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Цитата:
Fatal error: Only variables can be passed by reference

А теперь переводим: Фатальная ошибка: Только переменные могут передаваться по ссылке.

Думаем "Что эта за фигня?", и идем читать доку. В доках случайно обнаруживаем примечание:
Цитата:
Начиная с PHP 5.0.0 количество произведенных замен может быть получено в необязательном аргументе count , который передается по ссылке. В версиях до PHP 5.0.0 этот аргумент недоступен.


Продолжаем думать...


-----
армия.. самое убогое место
 
 Top
will123
Отправлено: 13 Октября, 2009 - 14:01:15
Post Id



Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




а как тогда заменить с помощью str_replace только первое вхождение?
(Добавление)
movEAX с английским у меня все гуд, перевести сам могу
 
 Top
Champion Супермодератор
Отправлено: 13 Октября, 2009 - 14:15:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




will123 пишет:
как тогда заменить с помощью str_replace только первое вхождение?
Тема была. Не с помощью str_replace, а с помощью strpos+substr_replace.
Ну или всё-таки preg_replace. Ошибку в нем я тебе указал
 
 Top
movEAX
Отправлено: 13 Октября, 2009 - 14:19:46
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




PHP:
скопировать код в буфер обмена
  1. $str = " akhs djhask hkajs h asjd ka skj</p> a jdks jd </p>";
  2.    
  3. $simpleVar=1;
  4. $str = str_replace("</p>", "tag", $str, $simpleVar);


-----
армия.. самое убогое место
 
 Top
will123
Отправлено: 13 Октября, 2009 - 14:21:32
Post Id



Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




ограничители как я понял вот так:
CODE (text):
скопировать код в буфер обмена
  1. $str = " akhs djhask hkajs h asjd ka skj</p> a jdks jd </p>";
  2. $str = preg_replace("/</p>/", "tag", str, 1);
та же ошибка. Может нужно как то экранировать символ "/" в </p>, если да то как?и
P.S. а тема где sub_str+str_pos я создавал)) решил использовать preg_replace()
 
 Top
Champion Супермодератор
Отправлено: 13 Октября, 2009 - 14:24:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Твоя же тема, тот же вопрос!
http://forum.php.su/topic.php?fo...=4&topic=140
Объясни мне такое явление
 
 Top
movEAX
Отправлено: 14 Октября, 2009 - 18:00:28
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Извиняюсь за предыдущий пост, ибо он не корректен. В описание доки не до конца вник, в чем каюсь.

Попробуй такой код:
PHP:
скопировать код в буфер обмена
  1.  
  2.           $str = " akhs djhask</p> hkajs h asjd ka skj</p> a jdks jd </p>";
  3.           $StrPosition = strpos($str,'</p>' );
  4.           $str = substr_replace($str,"tag",$StrPosition,4);
  5.           echo   $str  ;


Цитата:

та же ошибка. Может нужно как то экранировать символ "/" в </p>, если да то как?


Попробуй вместо /.../ использовать что-то на подобии #...# или !...!, тогда ничего экранировать не придется.


-----
армия.. самое убогое место
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB