Форум → Программирование → PHP для идиотов → Помогите разобраться с парсингом html-страниц
Помогите разобраться с парсингом html-страниц
Страницы: ← Предыдущая страница • Следующая страница →
-
Фев. 12, 2010, 5:36 п.п., спустя 29 минут 5 секунд
preg_match_all("#<textarea.*>(.*)</textarea>#iUs", $line, $output_array_textareas);
preg_match_all("#<p><img.*src.*=.*\\\"(.*)\\\".*>#iUs", $line, $output_array_imgs);
img находит, textarea не находит пустой массив выдает, а на Пыхе работает -
Фев. 12, 2010, 5:42 п.п., спустя 5 минут 47 секунд
preg_match_all('/<p>\s*<img.*?src\s*=\s*"(.*?)".*?>/is', $line, $output_array_imgs);https://smappi.org/ - платформа по созданию API на все случаи жизни -
Фев. 12, 2010, 6:04 п.п., спустя 21 минуту 58 секунд
adw0rd, img находит не находит textarea. Не находит потому что не правильный паттерн.
У меня
<textarea> —> одна строка
содержимое —> вторая строка
</textarea> —> третья строка строка
Скажите на Пыхе обрабатываемый текст преобразуется в сплошную строку?Спустя 249 сек.Ребята с гордостью выкладываю рабочий вариант)))
$dir = 'D:/SCT/SCT2/';
foreach(glob($dir . '*.HTML') as $file) {
$f = fopen($file, "rt");
$file1 = file_get_contents($file);
//$lines = explode("\n", fread($f, filesize($file)));
echo "Файл: ".$file;
// foreach ($lines as $line)
// {
preg_match_all('/<textarea.*>(.*)<\/textarea>/iUs', $file1, $output_array_textareas);
foreach ($output_array_textareas[1] as $textarea)
{
echo "\n<br />Код из textarea: " . $textarea;
}
preg_match_all('/<p>\s*<img.*?src\s*=\s*"(.*?)".*?>/is', $file1, $output_array_imgs);
foreach ($output_array_imgs[1] as $img)
{
echo "\n<br />Код из img: " . $img;
}
// }
} -
Фев. 12, 2010, 6:06 п.п., спустя 1 минуту 42 секунды
gvik, а, ссорь, не ту регулярку правил )https://smappi.org/ - платформа по созданию API на все случаи жизни -
Фев. 12, 2010, 6:09 п.п., спустя 2 минуты 46 секунд
adw0rd, там дело было не в регулярке, а в том как я файл распаковывал (нужно было всё в одну строку) -
-
Фев. 12, 2010, 6:18 п.п., спустя 3 минуты 32 секунды
нет, надо было в регулярке указать что режим многострочный
adw0rd, там дело было не в регулярке, а в том как я файл распаковывал (нужно было всё в одну строку)https://smappi.org/ - платформа по созданию API на все случаи жизни -
Фев. 13, 2010, 12:46 п.п., спустя 18 часов 27 минут 43 секунды
нет, надо было в регулярке указать что режим многострочный
adw0rd, там дело было не в регулярке, а в том как я файл распаковывал (нужно было всё в одну строку)
"…его пример другим наука…" -
Фев. 13, 2010, 1:03 п.п., спустя 17 минут 10 секунд
Помогите разделить сплитом строки такого вида, не получается никак
AP LOCKHEED: LS 1684
ATE (AD1): 03.0137-0253.2
BENDIX: 362288B
FERODO: FSB 422
LUCAS: GS 8536
TEXTAR: 98101-0464
я делаю так split('[\: ]', $textarea) он разделяет вот так
AP LOCKHEED
LS 1684 ATE (AD1)
03.0137-0253.2 BENDIX
362288B FERODO
FSB 422 LUCAS
GS 8536 TEXTAR
98101-0464 -
-
Фев. 13, 2010, 1:12 п.п., спустя 4 минуты 29 секунд
gvik, забудь про splitСпустя 10 сек.как и про весь сраный eregСапожник без сапог -
Фев. 13, 2010, 1:32 п.п., спустя 20 минут 39 секунд
поправьте пожалуйста мой паттерн
ошибся там строка
AP LOCKHEED: LS 1684 ATE (AD1): 03.0137-0253.2 BENDIX: 362288B FERODO: FSB 422 LUCAS: GS 8536 TEXTAR: 98101-0464
вот паттерн с пыхи
'#.*[: ].*[ ]#iUs'
вот результат
Array
(
[0] => Array
(
[0] => AP LOCKHEED:
[1] => LS 1684
[2] => ATE (AD1):
[3] => 03.0137-0253.2 BENDIX:
[4] => 362288B FERODO:
[5] => FSB 422
[6] => LUCAS:
[7] => GS 8536
[8] => TEXTAR:
)
) -
-
Фев. 13, 2010, 2:26 п.п., спустя 44 минуты 16 секунд
я хочу разделить так "любой_символ_двоеточие_пробел_любой_символ_пробел" вот что написал "/.*:\s.*\s/iU" Правильно?Спустя 28 сек.на пыхе не получается правильный паттерн написать -
Фев. 13, 2010, 2:50 п.п., спустя 24 минуты 28 секунд
gvik, тут быстрее будет работать екксплод.
Регулярка:
/(.*):(.*)\n/iU - так бы я сделал
/(.*?):(.*?)\n/i - так Эдво
Хотя я думаю, что Эдво сделал бы так:
/(.*):(.*)\n/
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!