У меня очень странная проблема.
Когда я открываю приведенный ниже скрипт в браузере и запускаю его, все работает, как и ожидалось. Даже если я вызову скрипт в командной строке, я получу ожидаемый результат.
Но если я запускаю сценарий в фоновом режиме, сценарий прерывается в функции preg_match без каких-либо ошибок. У меня нет сообщения об этом нигде, ни в журналах, ни где-либо еще. Я также проверил, существует ли функция, и она существует.
Сценарий просто прерывается на preg_match и не показывает никаких сообщений о возможных ошибках. Так что я получаю только вывод CHECKPOINT 1.
Я проверил версии PHP и везде одна и та же версия (один и тот же путь). Также настройки pcre идентичны.
Возможно ли, что у меня есть разные модули или функции для preg_match? Есть ли способ проверить, что происходит в функции?
с try & catch я не получаю никакой информации о проблеме.
<?php
class pcre_check
{
public function setUp() {
}
public function perform() {
echo "CHECKPOINT 1";
preg_match("/[0-9]{4}/", "6876 ABCDEFGH", $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
echo "CHECKPOINT 2";
}
public function tearDown() {
}
}
$test = new pcre_check();
$test->setUp();
$test->perform();
$test->tearDown();
?>
Информация о системе:
- сервер Apache
- PHP 7.4.2
Тот же скрипт работает онлайн на рабочем сервере. Только на моем локальном сервере у меня есть эта проблема.
Кажется, возникла проблема с регулярными выражениями. Функция preg_replace тоже не работает, но работает str_replace с заменой обычной строки.
setUp()
иtearDown()
, если они пусты? - person Ro Achterberg   schedule 09.11.2020