Articles of Исправление

Как изменить HTTP-ответ и показать сообщение об ошибке, когда исключение происходит в деструкторе?

У меня есть ситуация, когда функция PHP пытается перенаправить браузер через HTTP 302, но исключение бросается в деструктор, вызываемый «exit». Фактический код, о котором идет речь, это метод _doRedirect () SimpleSAML, но вот упрощенная ситуация: header('Location: http://somewhere.com', TRUE, 302); exit; // end script execution «Выход» запускает деструктор для несвязанного класса, и данные об ошибках записываются […]

PHP5: Почему попытка try / catch не работает?

На моей сборке XAMPP / Win XP PHP5.2.3 не удается поймать какие-либо исключения. Ни один из примеров не работает, и это: try { throw new Exception('Fail'); } catch (Exception $e) { echo 'Succeed'; } … результаты: Неустранимая ошибка : исключить исключение «Исключение» с сообщением «Fail» в M: \ path \ to \ test.php: 4 Трассировка […]

Поймать фатальное исключение и продолжить

Я знаю, что по самому своему определению фатальное исключение должно убивать выполнение и не должно быть подавлено, но вот в чем проблема. Я запускаю скрипт, который сбрасывает, анализирует и хранит в БД около 10 000 страниц. Это занимает пару часов, и в редких случаях (1 из 1000) страница не выполняет синтаксический анализ и генерирует фатальное […]

Программно извлекать ключевые слова из доменных имен

Предположим, у меня есть список доменных имен, которые я бы хотел проанализировать. Если имя домена не переносится, я не вижу особо простого способа «извлечь» ключевые слова, используемые в домене. Тем не менее, я вижу, что это делается на таких сайтах, как DomainTools.com, Estibot.com и т. Д. Например: ilikecheese.com becomes "i like cheese" sanfranciscohotels.com becomes "san […]

Не удается удалить пробелы из текстового поля

У меня два файла. Первый файл представляет собой форму, а второй – результат. Первый файл: <form action="show.php" method=post> <textarea name="test" cols=40 rows=6> </textarea> <input type=submit value="submit"> </form> Второй файл: <?php $text = trim($_POST['test']); $textAr = explode("\n", $text); for ($i=0; $i<sizeof($textAr); $i++) { $link = str_replace(" ", "", $textAr[$i]); echo $link."—<br>"; } ?> Когда я вхожу […]

Рекурсивный поиск и удаление в массиве?

Я работаю с многомерным массивом, я хочу иметь возможность удалить массив (и все дочерние элементы), которые соответствуют идентификатору. Функция, которую я пробовал: function removeKey($key, $array, $childKey = 'children'){ if(isset($array[$key])){ unset($array[$key]); return $array; } foreach($array as &$item) if(isset($item[$childKey])) $item = removeKey($key, $item[$childKey], $childKey); return $array; } Мой массив примеров: Array ( [5] => Array ( [id] […]

Блоки try-catch PHP: могут ли они улавливать недопустимые типы аргументов?

Предпосылки: Предположим, что у меня есть следующий явно неправильный PHP: try{ $vtest = ''; print(array_pop($vtest)); }catch(Exception $exx){} Чтобы он работал с array_pop, $ vtest, очевидно, должен быть массивом, а не строкой. Тем не менее, когда я запускаю этот код, появляется предупреждение. Я не хочу этого, я просто хочу, чтобы код терпел неудачу. Вопрос: Есть ли […]

Ошибка PDOException?

Я получаю следующую ошибку в PHP : Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061)' in C:\xampp\htdocs\project\Service\Database.class.php:26 Stack trace: #0 C:\xampp\htdocs\project\Service\Database.class.php(26): PDO->__construct('mysql:host=loca…', 'root', '', Array) #1 C:\xampp\htdocs\project\Service\Database.class.php(54): Service\Database::initialize() #2 C:\xampp\htdocs\project\index.php(15): Service\Database::getHandler() #3 {main} thrown in C:\xampp\htdocs\project\Service\Database.class.php on line 26 Сама ошибка не является проблемой , я […]