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
Форумы портала PHP.SU :: Версия для печати :: Помогите с вырезанием ссылки
Форумы портала PHP.SU » PHP » Регулярные выражения » Помогите с вырезанием ссылки

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

1. Ринат - 26 Апреля, 2009 - 12:28:08 - перейти к сообщению
Приветсвтую Вас!
Подскажите возможно ли сделать так:

CODE (text):
скопировать код в буфер обмена
  1. [IMG]http://test.ru/mages/logotype.png[/IMG]
  2. Похоже на то, что шведско-японское совместное предприятие получило еще один шанс на жизнь


и чтоб осталось толька ссылка:

CODE (text):
скопировать код в буфер обмена
  1. http://test.ru/mages/logotype.png


не могу додуматься
2. Champion - 26 Апреля, 2009 - 13:46:35 - перейти к сообщению
чего?
3. vitaliy_mad - 26 Апреля, 2009 - 13:59:53 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $pat=array('#[IMG]#','#[/IMG]#');
  3. $str=preg_replace($pat,"",$str);
  4. ?>

наверно это
4. Ринат - 26 Апреля, 2009 - 16:26:22 - перейти к сообщению
Нужно от текста оставить толька ссылку.

т.е. вырезать всеи до [IMG] и после [/IMG]

PHP:
скопировать код в буфер обмена
  1.  
  2. $page="[IMG]http://test.ru/mages/logotype.png[/IMG]
  3. Похоже на то, что шведско-японское совместное предприятие получило еще один шанс на жизнь";
  4.  
  5.  
  6.  
  7. $page= preg_replace("#\[IMG\]([^?](?:[^\[]+|\[(?!url))*?)\[/IMG\]#i","\\1", $page);



можно ли получить \\1 в переменную?
5. Champion - 26 Апреля, 2009 - 16:33:52 - перейти к сообщению
preg_match('/\[IMG\]([^[]+)\[\/IMG\]/m', $page, $matches);
var_dump($matches);
6. Ринат - 26 Апреля, 2009 - 17:02:45 - перейти к сообщению
Champion

ошибка


Цитата:

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in W:\home\pop.ru\www\5.php on line 7
NULL


поддставлю ""

Цитата:

preg_match("'\[IMG\]([^[])\[\/IMG\]'", $page, $matches);
var_dump($matches);


получаю

Цитата:

array(0) { }


что то не так
7. Champion - 26 Апреля, 2009 - 17:30:28 - перейти к сообщению
Точно. Исправил.
8. Ринат - 26 Апреля, 2009 - 17:33:28 - перейти к сообщению
Дык а как получить с нее ссылку?
9. Champion - 26 Апреля, 2009 - 17:53:24 - перейти к сообщению
Ты же видишь
array(2) { [0]=> string(44) "[IMG ]http://test.ru/mages/logotype.png[/IMG]" [1]=> string(33) "http://test.ru/mages/logotype.png" }
Ссылка - в первом([1]) элементе массива
10. Ринат - 26 Апреля, 2009 - 18:27:50 - перейти к сообщению
А если в тексте будет 2 ссылки как это будет выглядеть?
11. Champion - 26 Апреля, 2009 - 19:26:37 - перейти к сообщению
preg_match_all
12. Ринат - 27 Апреля, 2009 - 11:50:48 - перейти к сообщению
тут ошибка. массив пуст


PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. preg_match("'\[IMG\]([^[])\[\/IMG\]'", $page, $matches);
  4. var_dump($matches);
  5.  
  6.  





Спасибо! напривил на путь истинный!


PHP:
скопировать код в буфер обмена
  1.  
  2. $page="[IMG]http://test.ru/mages/logotype.png[/IMG]
  3. Похоже на то, что шведско-японское совместное предприятие получило еще один шанс на жизнь [IMG]http://test.ru/mages/logotype2.png[/IMG]";
  4.  
  5. preg_match_all("#\[IMG\]([^?](?:[^\[]+|\[(?!url))*?)\[/IMG\]#i", $page, $matches);
  6.  
  7. foreach($matches[1] as $key => $val) {
  8.  
  9. $match= $matches[1][$key];
  10.  
  11. }
  12.  


вывод

http://test[dot]ru/mages/logotype[dot]png
http://test[dot]ru/mages/logotype2[dot]png
13. Champion - 27 Апреля, 2009 - 11:56:59 - перейти к сообщению
Ринат пишет:
("'\[IMG\]([^[])\[\/IMG\]'",
Я этого не писал.
14. Ринат - 27 Апреля, 2009 - 16:57:37 - перейти к сообщению
прошу прощения!!! вероятно я сам в запарке снес.
15. Ринат - 27 Апреля, 2009 - 20:27:00 - перейти к сообщению
продолжаю функцию обработки Улыбка


столкнулся с другой проблемойю как заминить теперь на свои ссылки?

вот скрипт:


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $page="[IMG]http://test.ru/mages/logotype.png[/IMG]  Похоже на то, что шведско-японское совместное предприятие получило еще один шанс на жизнь [IMG]http://test.ru/mages/logotype2.png[/IMG]";
  5.  
  6.  
  7. preg_match_all("#\[IMG\]([^?](?:[^\[]+|\[(?!url))*?)\[/IMG\]#i", $page, $matches);
  8.  
  9. foreach($matches[1] as $key => $val) {
  10.  
  11.  
  12. $match[$key]= $matches[1][$key];
  13.  
  14. $urlimg[$key]="tmp/".basename($match[$key])."";
  15.  
  16. if (!file_exists($urlimg[$key]))@copy($match[$key],"tmp/".basename($match[$key])."");
  17.  
  18.  
  19.  
  20. $page = preg_replace("#\[IMG\]([^?](?:[^\[]+|\[(?!url))*?)\[/IMG\]#i","$urlimg[$key]",$page);
  21.  
  22.  
  23.  
  24. }
  25.  
  26. ?>
  27.  




выходить что меняет тока по первой ссылки

CODE (text):
скопировать код в буфер обмена
  1. tmp/logotype.png Похоже на то, что шведско-японское совместное предприятие получило еще один шанс на жизнь tmp/logotype.png

 

Powered by ExBB FM 1.0 RC1