Я создаю небольшую утилиту PHP с Linux, которая извлекает веб-страницы и изображения с сервера Windows. Все работает хорошо, кроме имен файлов и ссылок. Windows не против прописных или нет, но клиент linux.PHP regex match capital html
Обрабатываемые файлы содержат ссылки, на которые иногда ссылаются заглавные буквы, иногда нет.
Я сохраняю все файлы, используя заглавные буквы, без проблем.
После получения веб-страницы с использованием curl в строку, я хочу убедиться, что любые ссылки в строке «веб-страницы» - на другие «внутренние» htmlpages правильные.
Файлы ссылаются на «A1.HTML», «a23.hTmL», «A123.htm», «a2.html», «a213.HTML» и т. Д.
Общая картина: Ссылка будет всегда начинаются с (или А), а затем с помощью счетчика (от 1 до 999) и расширением .html (или .htm или .htm или .html)
Код:
function get_url(){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_SESSION['GETURL']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
// Now the page is stored in $output
// Replace a|A\d{1,999}\.[HTML|html|Html|htm|Htm|HTM] with A <NUMBER FROM BEFORE> <dot> HTML
// maybe use preg_replace
Пример (страница проблема "A3.HTML"):
Перед:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>MYTITLE</TITLE><META HTTP-EQUIV='refresh' content='8;URL=A3.HTML'> ...........
или:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>MYTITLE</TITLE><META HTTP-EQUIV='refresh' content='8;URL=A3.html'> ...........
или:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>MYTITLE</TITLE><META HTTP-EQUIV='refresh' content='8;URL=a3.HTML'> ...........
или:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE>MYTITLE</TITLE><META HTTP-EQUIV='refresh' content='8;URL=A3.HTML'> ...........
Любая помощь образуя подходящую функцию, чтобы обеспечить форматирование в строке высоко оценена.
Заранее спасибо
/Niels
Это не предмет ОС, так как это предмет файловой системы. Windows/OS X по умолчанию используют не зависящие от регистра форматы, но Linux использует регистр с учетом регистра. Возможные другие подходы: Создайте диск/образ диска/диск с файловой системой без регистра и выполните эту папку. Сделайте все имена файлов в нижнем регистре и используйте что-то вроде mod_rewrite, чтобы ввести требуемый путь к файлу. –
активация mod_speling в apache также решит проблему. –