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

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

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

 

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

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

тема: Замена любых ссылок.

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

 
 автор: cheops   (01.10.2009 в 15:20)   письмо автору
 
   для: icq677555   (01.10.2009 в 14:54)
 

Второе выражение поправьте следующим образом
<?php
  $pattern 
"|<a href=['\"]([^'\"]+?)['\"]|is";
?>

  Ответить  
 
 автор: icq677555   (01.10.2009 в 14:54)   письмо автору
 
   для: icq677555   (01.10.2009 в 14:45)
 

Хм.. Рановато я обрадовался..
Попробуйте например сделать $string = file_get_contents("http://wab.ru");
Получается, что не все ссылки обрабатывает..
Cheops, выручайте..

  Ответить  
 
 автор: icq677555   (01.10.2009 в 14:45)   письмо автору
 
   для: cheops   (01.10.2009 в 12:57)
 

Благодарю. То что надо!
Единственное, добавил немного:

$pattern = "|<a.*?href=['\"]([^']+?)['\"].*?>|is";

  Ответить  
 
 автор: cheops   (01.10.2009 в 12:57)   письмо автору
 
   для: icq677555   (01.10.2009 в 09:28)
 

Можно поступить как-то так
<?php
  $my 
'http://test1.com/'
  
$string "test text <a href='http://site.com/about.html'>about</a> more text ".
            
"<a href='http://test.com/test/news.html'>news</a> more more text ".
            
"<a href='hell/hell.html'>hell</a>"
  
$pattern "|(http://[^/]+)/|is";
  
$string preg_replace($pattern$my$string);
  
$pattern "|<a href='([^']+?)'>|is";
  
$string preg_replace_callback($pattern"replace"$string);
  echo 
htmlspecialchars($string);

  function 
replace($out)
  {
    global 
$my;
    if(
strpos($out[1], "http://") === false) return "<a href='{$my}$out[1]'>";
    else return 
"<a href='$out[1]'>";
  }
?>

  Ответить  
 
 автор: icq677555   (01.10.2009 в 09:28)   письмо автору
 
 

допустим есть строка:


<?
$my 
'http://test1.com';

$string "test text <a href='http://site.com/about.html'>about</a> more text <a href='http://test.com/test/news.html'>news</a> more more text <a href='hell/hell.html'>hell</a>";
?>


Как сделать, чтобы все адреса в таких ссылках заменились на нужные мне? т.е. на http://test1.com/about.html, http://test1.com/test/news.html, http://test1.com/hell/html

?

  Ответить  

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

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

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