За последние 24 часа нас посетили 16409 программистов и 1300 роботов. Сейчас ищут 838 программистов ...

Регулярное выражение несколько строк

Тема в разделе "PHP для новичков", создана пользователем IvanKut, 13 июл 2024.

  1. IvanKut

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

    С нами с:
    27 июл 2018
    Сообщения:
    264
    Симпатии:
    0
    Привет

    Паршу лог php - 99% ошибок однострочных, тупо разбираю по новой строчки.
    А бывают как в данном случае многострочные, когда есть Stack trace.

    Подскажите пожалуйста, как написать регулярку, чтобы разбить данный текст на три строчки

    Что я пробовал не получилось:(

    Спасибо

    Код (Text):
    1. preg_match_all("/(PHP) (.*) (on line) ([0-9]*)/im", $data, $strRaw, PREG_PATTERN_ORDER);

    Код (Text):
    1. PHP Warning:  count(): Parameter must be an array or an object that implements Countable in cron/owner/owner/ownerAdvData/ownerAdvData_ownerAdvImportWhatsapp.php on line 5
    2. PHP Fatal error:  Uncaught Error: Call to a member function fetch_assoc() on bool in api/billing/billingFunc/billingGet_func.php:65
    3. Stack trace:
    4. #0 api/billing/billingFunc/billingCorrect_func.php(141): billingGet(Array)
    5. #1 cron/user/userBonus/userBonus_billing_billingCorrect.php(36): billingCorrect('1462062', Array)
    6. #2 cron/user/userBonus.php(74): require_once('/var/www/a.unir...')
    7. #3 {main}
    8.   thrown in api/billing/billingFunc/billingGet_func.php on line 65
    9. PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/php70/lib/php/modules/redis.so' (tried: /opt/php70/lib/php/modules/redis.so (/opt/php70/lib/php/modules/redis.so: cannot open shared object file: No such file or directory), /opt/php74/lib/php/modules//opt/php70/lib/php/modules/redis.so.so (/opt/php74/lib/php/modules//opt/php70/lib/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
     
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    409
    Симпатии:
    78
    Адрес:
    Бавария, Германия
    Добрый день!
    Попробуйте сделать так
    PHP:
    1. <?
    2. $data = <<<EOF
    3. PHP Warning:  count(): Parameter must be an array or an object that implements Countable in cron/owner/owner/ownerAdvData/ownerAdvData_ownerAdvImportWhatsapp.php on line 5
    4. PHP Fatal error:  Uncaught Error: Call to a member function fetch_assoc() on bool in api/billing/billingFunc/billingGet_func.php:65
    5. Stack trace:
    6. #0 api/billing/billingFunc/billingCorrect_func.php(141): billingGet(Array)
    7. #1 cron/user/userBonus/userBonus_billing_billingCorrect.php(36): billingCorrect('1462062', Array)
    8. #2 cron/user/userBonus.php(74): require_once('/var/www/a.unir...')
    9. #3 {main}
    10.   thrown in api/billing/billingFunc/billingGet_func.php on line 65
    11. PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/php70/lib/php/modules/redis.so' (tried: /opt/php70/lib/php/modules/redis.so (/opt/php70/lib/php/modules/redis.so: cannot open shared object file: No such file or directory), /opt/php74/lib/php/modules//opt/php70/lib/php/modules/redis.so.so (/opt/php74/lib/php/modules//opt/php70/lib/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
    12. EOF;
    13.  
    14. echo "<pre>";
    15. preg_match_all("/PHP(.*?)on\ line\ \d+/s", $data, $strRaw, PREG_PATTERN_ORDER);
    16. print_r($strRaw[0]);
    17.  
    18. /*
    19. Array
    20. (
    21.     [0] => PHP Warning:  count(): Parameter must be an array or an object that implements Countable in cron/owner/owner/ownerAdvData/ownerAdvData_ownerAdvImportWhatsapp.php on line 5
    22.     [1] => PHP Fatal error:  Uncaught Error: Call to a member function fetch_assoc() on bool in api/billing/billingFunc/billingGet_func.php:65
    23. Stack trace:
    24. #0 api/billing/billingFunc/billingCorrect_func.php(141): billingGet(Array)
    25. #1 cron/user/userBonus/userBonus_billing_billingCorrect.php(36): billingCorrect('1462062', Array)
    26. #2 cron/user/userBonus.php(74): require_once('/var/www/a.unir...')
    27. #3 {main}
    28.   thrown in api/billing/billingFunc/billingGet_func.php on line 65
    29.     [2] => PHP Warning:  PHP Startup: Unable to load dynamic library '/opt/php70/lib/php/modules/redis.so' (tried: /opt/php70/lib/php/modules/redis.so (/opt/php70/lib/php/modules/redis.so: cannot open shared object file: No such file or directory), /opt/php74/lib/php/modules//opt/php70/lib/php/modules/redis.so.so (/opt/php74/lib/php/modules//opt/php70/lib/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
    30. )
    31. */
    Удачи!
     
  3. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    911
    Симпатии:
    143
    @Vladimir Kheifets, в очередной раз благодарочка, что стараетесь помочь людям, но
    1) короткая открывашка "<?" давным-давно в депре;
    2) тут всё-таки сначала был более уместен вопрос "зачем парсить лог" )))