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

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

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

 

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

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

тема: перевести регулярное выражение на понятный язык

Сообщения:  [1-10]   [11-18] 

 
 автор: cheops   (03.01.2006 в 13:04)   письмо автору
 
   для: elenaki   (03.01.2006 в 12:06)
 

Есть такое дело... Можно воспользоваться таким скриптом
<?php 
  $HTMLString 
'<img alt="" src="/somewhere/something.jpg">';
  
$pattern '#"[^"]+(\.jpg|\.gif|\.png)"#i';
  
$text preg_replace_callback
              
$pattern
              
"replace_text"
              
$HTMLString); 
  function 
replace_text($matches
  { 
    
// $matches[0] - это адрес 
    
echo $matches[0];
    return 
'"Новый_путь"'
  } 
?>

В этом случае $matches[0] будет содержать "/somewhere/something.jpg", который можно преобразовать и вернуть вместо '"Новый_путь"', или это тоже не то?

   
 
 автор: elenaki   (03.01.2006 в 12:06)   письмо автору
 
   для: cheops   (03.01.2006 в 03:12)
 

это выражение выводит по буквам. каждое $matches[$i] - это буква. но я же не знаю, сколько
у меня букв в имени файла! мне нужно отрезать с конца строки и до первого слэша. почему
никто не ищет с конца, ведь это же проще?

   
 
 автор: cheops   (03.01.2006 в 03:12)   письмо автору
 
   для: elenaki   (02.01.2006 в 23:29)
 

Ой, извиняюсь, попробуйте
<?php
  $pattern 
'#"[^"]+(\.jpg|\.gif|\.png)"#i';
?>

PS Символы ограничители могут быть любыми и я для красоты часто использую |, где этот символ не используется в самом выражении - вот за это и поплатился :)))

   
 
 автор: elenaki   (02.01.2006 в 23:29)   письмо автору
 
   для: cheops   (02.01.2006 в 13:18)
 

этот код не работает. выдает ошибку. почему вдруг слэши прямы стали? '|"[^"]+(\.jpg|\.gif|\.png)"|i'

   
 
 автор: cheops   (02.01.2006 в 13:18)   письмо автору
 
   для: elenaki   (02.01.2006 в 09:56)
 

А пути все заключены в двойные скобки? Тогда можно прибегнуть к функции обратного вызова
<?php 
  $pattern 
'|"[^"]+(\.jpg|\.gif|\.png)"|i'
  
$text preg_replace_callback
              
$pattern
              
"replace_text"
              
$HTMLString); 
  function 
replace_text($matches
  { 
    
// $matches[1] - это адрес 
    
return '"Новый_путь"'
  } 
?>


http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=10885

   
 
 автор: elenaki   (02.01.2006 в 09:56)   письмо автору
 
   для: Евгений Петров   (01.01.2006 в 22:01)
 

у меня не просто переменная, в которой путь. у меня текст, в середине которого могут
встретиться ссылки на картинки (картинки уже загружены ранее другим скриптом), поэтому
надо сначала эти ссылки отыскать, потом изменить, потом запомнить весь текст в базе...

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

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

   
 
 автор: Евгений Петров   (01.01.2006 в 22:01)   письмо автору
 
   для: elenaki   (01.01.2006 в 19:40)
 

Ну а чем вам тогда код cheops'a не нравится?

   
 
 автор: elenaki   (01.01.2006 в 19:40)   письмо автору
 
   для: cheops   (01.01.2006 в 17:21)
 

неважно, какими средствами, главное - поменять.

   
 
 автор: cheops   (01.01.2006 в 17:21)   письмо автору
 
   для: elenaki   (01.01.2006 в 14:38)
 

Не очень понятно, это необходимо осуществить средствами JavaScript или PHP?

   
 
 автор: elenaki   (01.01.2006 в 14:38)   письмо автору
 
   для: cheops   (01.01.2006 в 13:26)
 

это нужно для замены путей к картинкам при создании статей HTML-редакторе.
картинка вставляется вот таким кодом:

<input type="submit" value="OK" onclick="window.opener.EditField.execCommand('insertimage',false,document.forms['imgform'].img_file.value);">

понимаете, что в поле img_file стоит тот путь, который картинка имеет на компьютере автора статьи (который я конечно не знаю заранее). мне нужно этот путь заменить на реальный путь к картинке на сервере.

   

Сообщения:  [1-10]   [11-18] 

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

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