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

Форум PHP

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

 

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

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

тема: Поиск + замена в тексте
 
 автор: Ванек2010   (05.10.2010 в 21:05)   письмо автору
 
 

Чет я думал-думал и нифига не смог придумать)
Вообщем есть такая строка.
asd asdasdasd sas src='http://site.ru/forum/public/style_emoticons/#EMO_DIR#>/blink.gif' asdasd sadsad
Вообщем нужно обрезать строку src='http://site.ru/forum/public/style_emoticons/#EMO_DIR#>/blink.gif'
Я только додумался до того, что найти подстроку начинающуюся на scr= и подсчитать ее длину до пробела. А потом вырезать строку с символа до символа.
Только одно но, как подсчитать длину строки до символа пробела.

  Ответить  
 
 автор: akmal   (06.10.2010 в 16:42)   письмо автору
 
   для: Ванек2010   (05.10.2010 в 21:05)
 

Используйте регулярные выражения

  Ответить  
 
 автор: captain-america   (06.10.2010 в 17:00)   письмо автору
 
   для: Ванек2010   (05.10.2010 в 21:05)
 

//Если нехочешь париться с регулярками делается в просто.
//Ищешь первое вхождение src=
$str="asd asdasdasd sas src='http://site.ru/forum/public/style_emoticons/#EMO_DIR#>/blink.gif' asdasd sadsad";
//то есть
$pos1=strpos($str,'src=');
//далее ищи пробел начиная с позицию $pos1 , если адрес у тебя c пробелом, то ищи " ' "
$pos2=strpos($str, ' ', $pos1);
//Далее просто вырезаешь свое слово
//Длина твоей фразы
$len=$pos2-$pos1;
//получаем
$result=substr( $str, $pos1, $len);
echo $result;

  Ответить  
 
 автор: akmal   (06.10.2010 в 17:14)   письмо автору
 
   для: captain-america   (06.10.2010 в 17:00)
 

С регулярными выражениями получается проще.....

  Ответить  
 
 автор: sim5   (06.10.2010 в 17:31)   письмо автору
 
   для: akmal   (06.10.2010 в 17:14)
 

В каком смысле проще?

  Ответить  
 
 автор: captain-america   (06.10.2010 в 17:44)   письмо автору
 
   для: akmal   (06.10.2010 в 17:14)
 

Я согласен, но лично мне регулярные давались сложно и я пытался обойтись без них, да и сейчас бывает сижу с мануалом для начинающий, когда использую регулярку)

  Ответить  
 
 автор: sim5   (06.10.2010 в 17:46)   письмо автору
 
   для: captain-america   (06.10.2010 в 17:44)
 

А зря соглашаетесь, ибо если можно выполнить задачу имеющимися функциями, то о рег. выражениях лучше не вспоминать.

  Ответить  
 
 автор: akmal   (06.10.2010 в 18:16)   письмо автору
 
   для: sim5   (06.10.2010 в 17:46)
 

$str="asd asdasdasd sas src='http://site.ru/forum/public/style_emoticons/#EMO_DIR#>/blink.gif' asdasd sadsad";
$pos1=strpos($str,'src=');
$pos2=strpos($str, ' ', $pos1);
$len=$pos2-$pos1;
$result=substr( $str, $pos1, $len);
echo $result;
Столько строк кода можно заменить простым preg_replace в одну строку

  Ответить  
 
 автор: sim5   (06.10.2010 в 18:18)   письмо автору
 
   для: akmal   (06.10.2010 в 18:16)
 

Так вы используете рег. выражения исключительно из-за их красоты? А я думаю, что они не для этого служат.

  Ответить  
 
 автор: akmal   (06.10.2010 в 18:24)   письмо автору
 
   для: sim5   (06.10.2010 в 18:18)
 

>Так вы используете рег. выражения исключительно из-за их красоты? А я думаю, что они не для этого служат.
Я вообще ничего для красоты не использую. Просто иногда удобней когда в скрипте меньше строк...

  Ответить  
 
 автор: sim5   (06.10.2010 в 18:28)   письмо автору
 
   для: akmal   (06.10.2010 в 18:24)
 

А лучше когда производительнее, вроде бы так.

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

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