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 :: Замена регулярным выражением - нужна помощь

 PHP.SU

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


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

> Описание: Замена регулярным выражением - нужна помощь
M-K
Отправлено: 27 Апреля, 2013 - 21:50:49
Post Id


Новичок


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


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




Нужно в коде HTML заменить ссылки вида
CODE (html):
скопировать код в буфер обмена
  1. <img height="2448" style="cursor: default;" width="1836" name="1eaf2ea3-91be-4569-a1d6-88ae29eb6333" src="https://www.evernote.com/shard/s145/sh/ae317805-6b51-4051-89ce-c423bfc4cf7e/dcd53c30d44f4a5a132638306053b0fb/res/1eaf2ea3-91be-4569-a1d6-88ae29eb6333/IMG_20130427_103742.691.jpg?resizeSmall&width=832" class="en-media"/>


Коротко говоря (заменю в данном вопросе пока что «что угодно» знаком *, а url картинки знаком #) :
автор
Цитата:
<img * src="#" *>


Вот такое вот надо заменить на:
автор
Цитата:
нечто1#нечто2


А если конкретно, то заменить на это:
автор
Цитата:
<div class="photo hh">
<a href="#" class="image" onclick="return hs.expand(this,config1)">
<img title="" src="#?resizeSmall&width=100" alt="" />
</a>
</div>

(Отредактировано автором: 27 Апреля, 2013 - 22:27:43)

 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Апреля, 2013 - 22:09:19
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $pattern = '/<img.+src="(.+)".+\/?>/s';
  2. $replace = ' <div class="photo hh"> <a href="$1" class="image"';
  3. $replace .= ' onclick="return hs.expand(this,config1)">';
  4. $replace .= ' <img title="" src="$1" alt="" /> </a> </div> ';
  5. $str = preg_replace($pattern, $replace, $str);
 
 Top
M-K
Отправлено: 27 Апреля, 2013 - 22:24:59
Post Id


Новичок


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


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




Не работает(
Один раз заменяет вот на это
CODE (html):
скопировать код в буфер обмена
  1.  <div class="photo hh"> <a href="/redesign/sharing/SharedNoteViewAction/SharedNoteViewAction.js" class="image" onclick="return hs.expand(this,config1)"> <img title="" src="/redesign/sharing/SharedNoteViewAction/SharedNoteViewAction.js" alt="" /> </a> </div>

а дальше вообще пропадает текст
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Апреля, 2013 - 22:29:08
Post Id



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


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


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




Добавь в конец паттерна U
 
 Top
M-K
Отправлено: 27 Апреля, 2013 - 22:34:02
Post Id


Новичок


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


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




Я в восторге от Вашего профессионализма, тем более что я первоначально ссылку дал битую (исправил)
CODE (html):
скопировать код в буфер обмена
  1.  <div class="photo hh"> <a href="https://www.evernote.com/shard/s145/sh/ae317805-6b51-4051-89ce-c423bfc4cf7e/dcd53c30d44f4a5a132638306053b0fb/res/1eaf2ea3-91be-4569-a1d6-88ae29eb6333/IMG_20130427_103742.691.jpg?resizeSmall&width=832" class="image" onclick="return hs.expand(this,config1)"> <img title="" src="https://www.evernote.com/shard/s145/sh/ae317805-6b51-4051-89ce-c423bfc4cf7e/dcd53c30d44f4a5a132638306053b0fb/res/1eaf2ea3-91be-4569-a1d6-88ae29eb6333/IMG_20130427_103742.691.jpg?resizeSmall&width=832" alt="" /> </a> </div>

Однако требуется одна корректировка:
Вы сделали согласно такому требованию:

Цитата:
<div class="photo hh">
<a href="#?resizeSmall&width=832" class="image" onclick="return hs.expand(this,config1)">
<img title="" src="#?resizeSmall&width=832" alt="" />
</a>
</div>

Однако нужно вот так:

Цитата:
<div class="photo hh">
<a href="#" class="image" onclick="return hs.expand(this,config1)">
<img title="" src="#?resizeSmall&width=100" alt="" />
</a>
</div>

Прошу Вас, поправьте
(Добавление)
Т.е. если обсуждать результат. То картинка прежняя, а надо именно чтобы она была двух вариантов (других). Без аргумента уменьшения и затем с ним, но с новым.
У вас она исходная с ?resizeSmall&width=832, а нужно первый раз без, а потом с ?resizeSmall&width=100
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Апреля, 2013 - 23:02:16
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $pattern = '/<img.+src="(.+)\?resizeSmall&width=\d+".+\/?>/sU';
  2. $replace = ' <div class="photo hh"> <a href="$1" class="image"';
  3. $replace .= ' onclick="return hs.expand(this,config1)">';
  4. $replace .= ' <img title="" src="$1?resizeSmall&width=100" alt="" /> </a> </div> ';
  5. $str = preg_replace($pattern, $replace, $str);
 
 Top
M-K
Отправлено: 27 Апреля, 2013 - 23:09:01
Post Id


Новичок


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


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




Так вообще перестало заменять
 
 Top
M-K
Отправлено: 29 Апреля, 2013 - 23:40:12
Post Id


Новичок


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


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




Поможите?!
 
 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