Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как проще парсить хтмл
 
 автор: RV   (25.01.2007 в 08:15)   письмо автору
 
 

Есть достаточно объемная хтмл страничка. В ней есть форма.
Требуется разобрать эту форму, выделить из нее все hidden поля (имя\значение)
Как проще это сделать?
Сейчас делаю примерно так:

<?
$file 
fopen($link'r'); 
if (
$file
{
    while (!
feof($file))
    { 
        
$RetrieveFile[] = fgets($file); 
    }
}
$start "<form name=\"dialog_form\"";
$end "</form>";
foreach (
$RetrieveFile as $key => $val)
{
    if ((
strpos($val$start)) !== FALSE)
    {
        while (
strpos($val$end) !== FALSE)
        {
            
$array[] = $val;
            break;
        }
    }
}
?>

Далее получаю $array[0] в котором содержится целиком эта форма. и далее разбираю форму с помощью strpos().
Все это занимает достаточно долгое время (на глаз). Может есть способы лучше?
А исходная задача это отправка смс через свою форму.

   
 
 автор: KPETuH   (25.01.2007 в 08:58)   письмо автору
 
   для: RV   (25.01.2007 в 08:15)
 

я в данных случаях поступаю так
for ($i=0;$i<=count($RetrieveFile);$i++)
{
if (strpos($RetrieveFile[$i],"hidden")>1)
{
//разбор строки
continue;
}
if (strpos($RetrieveFile[$i],"</form>")>1)
{
break;
}
}

   
 
 автор: RV   (25.01.2007 в 09:06)   письмо автору
 
   для: KPETuH   (25.01.2007 в 08:58)
 

Собственно говоря основое время занимает первая строка
$file = fopen($link, 'r');

   
 
 автор: KPETuH   (25.01.2007 в 09:30)   письмо автору
 
   для: RV   (25.01.2007 в 09:06)
 

а с использованием сокетов не пробовал открывать мож быстрее будет хотя я скорость не сранивал... а зечем тебе вообще парсить кажный раз страницу?

   
 
 автор: RV   (25.01.2007 в 09:41)   письмо автору
 
   для: KPETuH   (25.01.2007 в 09:30)
 

Курлом то что надо.
А парсить страницу постоянно, чтобы узнать данные формы которая находится на операторском сайте (те самые хидден поля).
потом эти хидден поля подставляю в свою форму и отправляю

   
 
 автор: KPETuH   (25.01.2007 в 11:15)   письмо автору
 
   для: RV   (25.01.2007 в 09:41)
 

а разве данные этой формы там не постоянны? один пропарсил и забил в скрипт...

   
 
 автор: RV   (25.01.2007 в 12:58)   письмо автору
 
   для: KPETuH   (25.01.2007 в 11:15)
 

как минимум есть картинка и для нее есть хидден поле с хешем. этот хеш надо взять
это в лучшем случае

   
 
 автор: bronenos   (25.01.2007 в 14:22)   письмо автору
 
   для: RV   (25.01.2007 в 12:58)
 

Да сделайте картинку на сайте и вводите в свое поле скрытое текст с нее
Зачем копию тырить?...

   
 
 автор: RV   (25.01.2007 в 15:38)   письмо автору
 
   для: bronenos   (25.01.2007 в 14:22)
 

Про картинку ничго не понял.
Тырю картинку, показываю ее юзеру, юзер ее вбивает, а я потом отдаю результат в чужой скрипт.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования