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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Замена пробела

Сообщения:  [1-9] 

 
 автор: cheops   (03.07.2006 в 20:23)   письмо автору
 
   для: SS   (03.07.2006 в 12:19)
 

Есть такое дело, следует исправить следующим образом
<?php 
  $_POST
['name'] = preg_replace("|^http|is""http"$_POST['name']); 
?>

   
 
 автор: SS   (03.07.2006 в 12:19)   письмо автору
 
   для: cheps (из кафе)   (03.07.2006 в 10:23)
 

Не работает. Такое сообщение:
Warning: preg_replace() [function.preg-replace]: No ending delimiter '|' found in /home/zam.php on line 30

   
 
 автор: cheps (из кафе)   (03.07.2006 в 10:23)
 
   для: cheops (из кафе)   (03.07.2006 в 10:21)
 

Только, конечно, с str_replace это работать не будет, символ ^ - это символ регулярного выражения, поэтому должно быть что-то в этом духе
<?php 
  $_POST
['name'] = preg_replace("|^http}is""http"$_POST['name']); 
?> 

   
 
 автор: cheops (из кафе)   (03.07.2006 в 10:21)
 
   для: SS   (03.07.2006 в 04:07)
 

Начало самой первой строки обозначается символом ^
<?php
  $_POST 
str_replace("^http""http"$_POST); 
?>

   
 
 автор: SS   (03.07.2006 в 04:07)   письмо автору
 
   для: cheops   (03.07.2006 в 00:16)
 

Спасибо.
Попутный вопрос:
Конец строки - \r
Начало строки - \n
А как обозначается начало самой первой строки? В данном сообщении - перед словом "Спасибо". \n для этого не подходит.
При добавлении сообщения мне нужно слово поставить пробел перед первым словом:

$_POST = str_replace("\r\nhttp", "\r\n http", $_POST);

   
 
 автор: cheops   (03.07.2006 в 00:16)   письмо автору
 
   для: SS   (02.07.2006 в 23:52)
 

Хм... а у вас регулярные выражения в preg_match() и preg_replace_callback() не совпадают, поэтому код не будет срабатывать и само регулярное выражение слудет немного поправить.
<?php 
  
function measure_string($out
  { 
    
$out[2] = str_replace(" ""&nbsp;"$out[2]); 
    return 
" <a href=\"http://".$out[1]."\" target='_blank'>http://".$out[2]."</a>"
  } 
  
$msg['mess'] = '[url = http://penelope.uchicago.edu/Thayer/E/Roman/Texts/secondary/SMIGRA/Accensi.html]Текст с пробелами[/url]';
  if (
preg_match("#\[url[\s]*=[\s]*([\S]+)[\s]*\][\s]*([^\[]*)\[/url\]#isU"$msg['mess'] )); 
  { 
    
$msg['mess']=preg_replace_callback("#\[url[\s]*=[\s]*([\S]+)[\s]*\][\s]*([^\[]*)\[/url\]#isU",'measure_string',$msg['mess']); 
  } 
  echo 
$msg['mess'];
?>

   
 
 автор: SS   (02.07.2006 в 23:52)   письмо автору
 
   для: cheops   (01.07.2006 в 21:52)
 

Что-то не получается у меня... Покажите, пожалуйста, как это должно выглядеть.

Сейчас так:


<?
if (preg_match("/\[url=\s*(\S*)\s*\]\s*\[\/url\]/si"$msg['mess'] )); 
{
function 
measure_string($out

$out[2] = str_replace(" ""&nbsp;"$out[2]);
    return 
" <a href=\"http://".$out[1]."\" target='_blank'>http://".$out[2]."</a>"

$msg['mess']=preg_replace_callback("/\[url=\s*(\S*)\s*\=url]\s*(\S*)\s*\[\/url\]/si",'measure_string',$msg['mess']);
}
?>

   
 
 автор: cheops   (01.07.2006 в 21:52)   письмо автору
 
   для: SS   (01.07.2006 в 17:39)
 

Для этого необходимо воспользоваться функцией preg_replace_callback() - т.е. заменять пробелы в результате уже в функции обратного вызова.

   
 
 автор: SS   (01.07.2006 в 17:39)   письмо автору
 
 

Как в строке

<?
$msg
['mess']=preg_replace("/\[url=\s*(\S*)\s*\=url]\s*(\S*)\s*\[\/url\]/si",'<a href="\\1"target=_blank>\\2</a>',$msg['mess']);
?>

заменить в параметре \\2 пробелы на nbsp; - ?

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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