Решил подготовить HTML файлы для того, чтобы каждый желающий мог проверить работу PHP кода. Однако, к великому удивлению, с тестовыми файлами нерабочий код заработал. Скопировал не содержимое исходного html файла в тестовый и тоже все работает.
Т.е. в исходных файлах есть какое-то непонятное отклонение, которое мешает php-коду правильно определять окончание строк, не смотря на то, что соответствующие служебные символы имеются. И что это за отклонение такое? Каким образом php определяет окончание строки?
Рано обрадовался Некоторые файлы проходят, а некоторые нет.
Прикладываю к сообщению архив с файлами. В архиве подборка тестовых архивных файлов и два php файла:
date_search.php - проблемный файл
date_search_old.php - этот вроде работает
Для перебора архивных файлов, в строке, после запуска кода, надо ввести соответствующий год. Например, для вызова arc2007.html надо ввести 2007. Проблемный код, на 2006 реагирует адекватно, а при вводе 2007 не может найти окончание строки. Хотя все html файлы сделаны под копирку.
Похоже разобрался с проблемой.
В предыдущей версии кода я контролировал окончание файла по остаточно длине последней строки. Если менее 20 символов, то уже конец. Такой вариант меня, в принципе, устраивает, но выглядит несколько коряво (а вдруг последняя строка окажется длиннее 20 символов?). В текущей версии кода решил ориентироваться на тег окончания html файла - </html>. И если после </html> нет следующей пустой строки, то код не найдет её конец. (Отредактировано автором: 18 Марта, 2024 - 16:59:15)
|