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

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

  • developer

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

    Spritz Март 12, 2015, 4:09 п.п.

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

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

    echo $row['full_story'];
    [/code]
    https://eval.in/299326

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

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

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

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

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

    Спустя 33 сек.

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

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

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

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

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

    Спустя 39 сек.

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

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • master

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Spritz Март 12, 2015, 4: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 сек.

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

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

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

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

    Спустя 69 сек.

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

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

    да не суть

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

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

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

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

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

    Спустя 24 сек.

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

    @phpdude, и я об этом

    Спустя 11 сек.

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

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

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

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

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

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

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

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

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

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

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

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

    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • master

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

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

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

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

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

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

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

  • developer

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

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

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

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

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

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

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