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

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

  • developer

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

    Spritz 12 марта 2015 г. 9:09

    $row[&#39;full_story&#39;] = &#39;<a href=&quot;http://bezsms.org/qefdni3dgxks/APG14022015.rar.html&quot; target=&quot;_blank&quot;>bezsms</a>, <a href=&quot;http://bezsms.org/o6j0hng5c4wt/APGAPGSS2015.rar.html&quot; target=&quot;_blank&quot;>bezsms 2</a>&#39;;

    $row[&#39;full_story&#39;] = preg_replace_callback(&#39;/<a(.*)href=&quot;http(.*)bezsms.org([^&quot;]*)&quot;(.*)>/&#39;, create_function(&#39;$m&#39;, &#39;return &quot;<a$m[1]href=\&quot;http://ketare.com/&#39;.$encode_title.&#39;/&quot; . base64_encode(&quot;http&quot;.$m[2].&quot;bezsms.org&quot;.$m[3]).&quot;/\&quot;$m[4]>&quot;;&#39;), $row[&#39;full_story&#39;]);

    echo $row[&#39;full_story&#39;];

    https://eval.in/299326

    заменяет с конца и только 1 раз:
    <a href=&quot;http://bezsms.org/qefdni3dgxks/APG14022015.rar.html&quot; target=&quot;_blank&quot;>bezsms</a>, <a href=&quot;http://ketare.com//aHR0cDovL2JlenNtcy5vcmcvbzZqMGhuZzVjNHd0L0FQR0FQR1NTMjAxNS5yYXIuaHRtbA==/&quot; target=&quot;_blank&quot;>bezsms 2</a>


    пробовал limit = -1, просто -1, миллион ставил, результат неизменился. запутался.
  • phpdude

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

    Spritz 12 марта 2015 г. 9:15, спустя 5 минут 52 секунды

    жадность "*" нужно понижать с помощью "?"

    Спустя 33 сек.

    Paste #299345 - eval.in [eval.in]

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

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

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

    Регулярку проверь сначала Paste #299351 - eval.in [eval.in]

    Спустя 39 сек.

    @phpdude, ну вот, сразу ответ дал

    adw/0
  • master

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

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

    проверь preg_match_all и увидишь:
    Array
    (
    [0] => Array
    (
    [0] => <a href=&quot;http://bezsms.org/qefdni3dgxks/APG14022015.rar.html&quot; target=&quot;_blank&quot;>bezsms</a>, <a href=&quot;http://bezsms.org/o6j0hng5c4wt/APGAPGSS2015.rar.html&quot; target=&quot;_blank&quot;>bezsms 2</a>
    )

    [1] => Array
    (
    [0] => href=&quot;http://bezsms.org/qefdni3dgxks/APG14022015.rar.html&quot; target=&quot;_blank&quot;>bezsms</a>, <a
    )

    [2] => Array
    (
    [0] => ://
    )

    [3] => Array
    (
    [0] => /o6j0hng5c4wt/APGAPGSS2015.rar.html
    )

    [4] => Array
    (
    [0] => target=&quot;_blank&quot;>bezsms 2</a
    )

    )
    не всё полезно, что в swap полезло
  • phpdude

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

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

    @adw0rd, ну так а куль там, сразу видно что регулярка с куском первой ссылки жрет весь контент ))) буквально на первой звезде.

    дуд могет еще, не застыл порох в пороховницах)

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

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

    Spritz 12 марта 2015 г. 9:24, спустя 1 минуту 35 секунд

    @master, хаха, я раньше! Ололо. Мне пришлось открывать доку по PCRE чтобы вспомнить названия и оаргументы к функциям, пхп гавно то еще - на каждый чих своя функция с километровым названием. Так же охуел от create_function, ведь вроде в пхп уже есть анонимные как в js?

    Спустя 85 сек.

    Еще убила передача по ссылкам

    int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
    

    возвращает int, но результаты по ссылке передаются биля

    Спустя 5 сек.

    Сразу возвращать результат не судьба чтоли?

    adw/0
  • phpdude

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

    Spritz 12 марта 2015 г. 9:25, спустя 1 минуту 29 секунд

    @adw0rd, есть, но они с 5.5 или 5.4 не помню. а create с древнейших времен

    Спустя 69 сек.

    возвращает int, но результаты по ссылке передаются биля

    @adw0rd, а вот кстати не понимаю почему в пхп боятся возвращать массивы о выполнении, возвращали бы false если них не найдено и array если все ок.

    да не суть

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

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

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

    @adw0rd, есть, но они с 5.5 или 5.4 не помню. а create с древнейших времен

    @phpdude, ну да, create_function я помню это мракобесие)

    Спустя 24 сек.

    @adw0rd, а вот кстати не понимаю почему в пхп боятся возвращать массивы о выполнении, возвращали бы false если них не найдено и array если все ок.

    @phpdude, и я об этом

    Спустя 11 сек.

    "оптимизация"

    adw/0
  • phpdude

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

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

    @adw0rd, скорее просто преданное C, C++. Там сложных типов не было сильно, посему наверное такие костыли перешли в пхп ибо разработчики изначально мыслили сями

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

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

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

    ох блять, какие ужасные цитаты)_))
    все умрут, а я изумруд
  • adw0rd

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

    Spritz 12 марта 2015 г. 9:58, спустя 12 минут 50 секунд

    @md5, я тебя уведомлял в трелло чтобы ты оформление сделал, мне главное функциональность

    adw/0
  • master

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

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

    Сразу возвращать результат не судьба чтоли?

    тогда бы вся интрига пропала, и это был бы не пхп
    не всё полезно, что в swap полезло
  • Sinkler

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

    Spritz 12 марта 2015 г. 11:06, спустя 1 час 5 минут 11 секунд

    да с 5.3 функции-анонисты уже есть, вообще странно видеть create_function. это точно пост этого года?)

  • developer

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

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

    спасибо за помощь. пост этого года, я просто пол дня назад узнал о preg_replace_callback, да и мои коды оставляют желать лучшего ) главное результат!
  • Sinkler

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

    Spritz 12 марта 2015 г. 11:33, спустя 9 минут 37 секунд

    ну или сколько за этот результат заплатят

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