Если вы знаете имя элемента и действительно только после одной мелочи, а формат страницы всегда одинаков, то может быть меньше труда просто использовать curl
и explode
для разбора документа с Строка сравнивается. Это быстрый и грязный способ сделать это, но до тех пор, пока выполняются эти два условия, возможно, это самый быстрый способ:
$url = 'http://example.com/';
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => "spider", // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10 // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$parts = explode('<input id="ID1" name="NAME1" value="', $content);
if (count($parts) == 2) {
$value = explode('">', $parts[1]);
$value = $value[0];
} else {
$value = false;
}
print 'Value is: ' . $value;
В противном случае вы можете использовать регулярные выражения (снова используя curl
, как указано выше):
preg_match('/name="NAME1".+value="(.*?)"/i', $html, $value);
$value = $value[1];
Наконец, если вы хотите сделать все возможное в этом, вы можете использовать анализатор документов. Однако имейте в виду, что если HTML-код, с которым вы работаете, сформирован неправильно, у парсера возникнут проблемы. Вот учебник по предмету с использованием стороннего класса: http://net.tutsplus.com/tutorials/php/html-parsing-and-screen-scraping-with-the-simple-html-dom-library/