Разбор внешней HTML-страницы с помощью PHP - PullRequest
1 голос
/ 10 июня 2011

Я пытаюсь использовать определение страны по IP, API из http://www.hostip.info/use.html

Так что если вы добавите в свой браузер что-то вроде: http://api.hostip.info/country.php?ip=12.24.25.26

, то страница напишет"US" ...

Теперь мой вопрос: как я могу использовать это в IF ELSE lopp в моем php-коде?Я думаю, что я должен разобрать эту HTML-страницу, но на данный момент я не имею ни малейшего понятия, некоторая помощь будет оценена!

Спасибо.

Ответы [ 3 ]

4 голосов
/ 10 июня 2011

CURL должен делать то, что вам нужно.

$url = "http://api.hostip.info/country.php?ip=[put_your_ip_here]";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);

if(preg_match('/^us$/i', $output)) {
  echo 'Is US';
} else {
  echo 'Something else';
}
4 голосов
/ 10 июня 2011

Поскольку на этой странице не выводится ничего, кроме кода страны, синтаксический анализ не требуется.Простая проверка возвращенного HTML сделает это.

<?php
$ip = '12.24.25.26';
$country = file_get_contents('http://api.hostip.info/country.php?ip='.$my_ip); // Get the actual HTML

if($country === "US") {
    echo "It is US";
} else {
    echo "It is not US. It is " . $country;
}
3 голосов
/ 10 июня 2011

Вы можете использовать следующее. Измените $my_ip на любой IP адрес, который вам нравится.

<?php
$my_ip = '12.24.25.26';
$my_country = file_get_contents('http://api.hostip.info/country.php?ip='.$my_ip);

if(strstr($my_country,'US'))
{
    echo $my_country . ' found.';
}
elseif(strstr($my_country,'XX'))
{
    echo 'IP: ' . $my_ip . 'doesn\'t exists in database';
}
...