ФорумПрограммированиеPHP для идиотов → preg_replace_callback отрабатывает 1 раз

preg_replace_callback отрабатывает 1 раз

  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 12 марта 2015 г. 11:41, спустя 7 минут 32 секунды

    та 99% для личных проектов делается, и складывается из вот такой хуеты, которая все равно не работает



    приходится аж лимиты повышать
    ini_set('pcre.backtrack_limit', 99999999999); 
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 11:49, спустя 8 минут 34 секунды

    WTF? Пройдись циклом по доменам

    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 12 марта 2015 г. 11:54, спустя 4 минуты 52 секунды

    та я уже нашёл вот такое решение в регулярке с доменами:
    (bezsms.org|dfiles.ru|turbobit.net)


    Спустя 292 сек.

    отрабатывает код

    $row['full_story'] = preg_replace_callback('/<a(.*?)href="http(.*?)(bezsms.org|dfiles.ru|turbobit.net|nitroflare.com|littlebyte.net|oboom.com|dfiles.ru|hitfile.net|rapidgator.net|letitbit.net|vip-file.com)([^"]*?)"(.*?)>/', create_function('$m', 'return "<a$m[1]href=\"http://ketare.com/'.$encode_title.'/" . base64_encode("http".$m[2].$m[3].$m[4])."/\"$m[5]>";'), $row['full_story']);[/code]
    https://eval.in/299442

    Но если домена нет в списке ссылку убивает вообще, не могу понять почему.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 12:07, спустя 13 минут 7 секунд

    Что значит убивает? Paste #299459 - eval.in [eval.in] ссылка остается не тронутой

    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 12 марта 2015 г. 12:09, спустя 1 минуту 22 секунды

    имею ввиду, что тянет такую ссылку:
    string(81) "://google.ru/files/asm7u7tlk" target="_blank">depositfiles</a> | <a href="http://"


    Спустя 142 сек.

    хотя по идее ссылки с другими доменами вообще не должны попадать под условие
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 12:11, спустя 2 минуты 24 секунды

    имею ввиду, что тянет такую ссылку:

    string(81) &quot;://google.ru/files/asm7u7tlk&quot; target=&quot;_blank&quot;>depositfiles&lt;/a> | &lt;a href=&quot;<noindex><a href="http://&quot;" rel="nofollow">http://&quot;</a></noindex>
    

    @developer, дай пример на eval.in [eval.in]

    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 12 марта 2015 г. 12:12, спустя 55 секунд

    самая первая ссылка с доменом google.ru и её в списке регулярки нет, и поэтому берет две ссылки и заменяет одной.
    пример https://eval.in/299442
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 12:26, спустя 13 минут 40 секунд

    @developer, Вот такая тебе нужна регулярка

    '/<a([^href]+?)href="http(.{3,4})(bezsms.org|dfiles.ru|turbobit.net|nitroflare.com|littlebyte.net|oboom.com|dfiles.ru|hitfile.net|rapidgator.net|letitbit.net|vip-file.com)([^"]+?)"(.+?)>/'[/code]
    adw/0
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 12 марта 2015 г. 12:31, спустя 5 минут 38 секунд

    спасибо, примерно так, если все адреса без www.
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 12:40, спустя 8 минут 36 секунд

    '/<a([^href]+?)href="http(.+?)(bezsms.org|dfiles.ru|turbobit.net|nitroflare.com|littlebyte.net|oboom.com|dfiles.ru|hitfile.net|rapidgator.net|letitbit.net|vip-file.com)([^"]+?)"(.+?)>/'[/code]

    Спустя 18 сек.

    https://eval.in/299520
    adw/0
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 14:51, спустя 2 часа 10 минут 50 секунд

    ебать мой хуй

    Сапожник без сапог
  • Sinkler

    Сообщения: 7931 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 14:53, спустя 2 минуты 10 секунд

    окосеть можно после просмотра)

  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 12 марта 2015 г. 17:27, спустя 2 часа 33 минуты 47 секунд

    я обычно делаю в 3 этапа:
    1. нахожу отдельные ссылки на отдельные ссылки
    <a href="..">..</a>


    2. в каждой ссылке нахожу подстроку и составляю строку для замены, формируя массив ключ=>значение
    array(
    '<a href="http://foo.com/blabla">blabla</a>' => '<a href="http://bar.net/blabla">blabla</a>'
    )


    3. прогоняю строку strtr c этим массивом
    работает ли оно с юникодом - не помню

    пункты 1 и 2 можно выполнять в теле одного цикла
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 12 марта 2015 г. 17:35, спустя 8 минут 39 секунд

    @master, ты крут

    Спустя 16 сек.

    бля меня аж штырит как быстро стала пыха работать. спасибо @phpdude за вдс =))

    Сапожник без сапог
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 12 марта 2015 г. 17:56, спустя 20 минут 29 секунд

    @phpdude, покажи vmstat -S m хост-сервера
    не всё полезно, что в swap полезло

Пожалуйста, авторизуйтесь, чтобы написать комментарий!