За последние 24 часа нас посетили 17711 программистов и 1609 роботов. Сейчас ищут 1188 программистов ...

Замена всех внешних ссылок на внутренние

Тема в разделе "Сделайте за меня", создана пользователем Econaft, 14 июл 2015.

  1. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Нужно заменить все внешние ссылки в переменной "$text":

    Код (PHP):
    1. $text = "Текст <a href=http://1111111.ru/page1.html>ссылка</a> и снова <a href =http://www.222222.ru/page2.html>ссылка</a> конец http://www.333333.ru/page3.html <a href=/page4.html>ссылка</a>";
    На внутренние. Например чтобы ссылка http://moysait.ru/page1.html И так все ссылки. Нужно чтобы они в самом тексте изменились.

    Вот есть пример:
    Код (PHP):
    1. <?php 
    2.  function unurl( $text ) {
    3.  $host = strtr($_SERVER['HTTP_HOST'], array('.' => '\.'));
    4.  $pattern = '/<a (.*?)href=[\"\']([a-z0-9]+)\:\/\/(?!'.$host.')(.*?)\/?(.*?)[\"
    5.  
    6.  \'](.*?)>(.*?)<\/a>/i';
    7.  if ( defined('USER_FRIENDLY_URL') ) {
    8.  $text = preg_replace_callback( $pattern, 'text_unurl', $text );
    9.  } else $text = preg_replace_callback( $pattern, 'text_unurl_bad', $text );
    10.  return $text;
    11.  }
    12.  ?>
    Но он не рабочий.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Код (PHP):
    1. $text = preg_replace("/http:\/\/[^\/]+/i", "", $text);
     
  3. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Нужно не удалить все ссылки, а заменить конкретные.
     
  4. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    я и не удалил все ссылки. а просто сделал внешние ссылки - внутренними, относительными.
    хотя если нужно именно заменить на конкреные другие, то мой вариант легко под это переделывается. напряги мозг .
     
  5. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Нужно заменить чужой домен на мой домен.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нужно перестать красть чужой контент и попытаться жить своим умом. Пока предупреждение.
     
  7. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Fell-x27
    Обвинение вообще никак необосновано.
    Я сам пишу статьи и не понаслышке знаю как это неприятно когда твою статью кто-то перекопипастит к себе.

    Это исключительно борьба с рекламными ссылками и спамом.
    В любом случае я рад, что тема кражи хоть кого-то волнует... Но не в тему.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На такой случай давным давно были придуманы модераторы. Выпиливание вооообще всех ссылок потом тебе самому в ногу выстрелит.
     
  9. Econaft

    Econaft Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    89
    Симпатии:
    1
    Помимо модераторов ещё есть PHP.
    Пусть теперь хоть сотню ссылок постят. Они все превращаются в мои ссылки.