使php只检索/回显某些行

时间:2015-02-07 09:25:35

标签: php html

我试图让它成为我的PHP代码只会获得我想要的行并且只回显它们

这是我目前的代码:

<?php
if(isset($_POST['resolve'])){
$api = "http://ip-api.com/line/";
if(strlen($_POST['name'])==0){
echo "fill in all fields!";
} else {
echo htmlentities($_POST['name'])."'s IP: ".htmlentities(file_get_contents($api.$_POST['name']));
}
}
?>  

如果你去&#34; http://ip-api.com/line/58.7.81.182&#34;例如,我只希望它回显第2,5,6行。

2 个答案:

答案 0 :(得分:1)

使用他们的PHP api会更容易:

<?php
    if(isset($_POST['resolve'])){
        $api = "http://ip-api.com/php/";
        if(strlen($_POST['name'])==0){
            echo "fill in all fields!";
        } else {
            // assuming $_POST['resolve'] has an IP
            $response = file_get_contents($api.$_POST['resolve']); 
            $array = unserialize($response);
            echo $array['regionName']; // or whatever value you want
         }
    }

他们的PHP api返回一个序列化的响应,所以你只需要调用unserialize()以便有一个简单易用的数组

答案 1 :(得分:0)

您可以使用explode将内容存储在数组中,如下所示

$content = htmlentities(file_get_contents("http://ip-api.com/line/58.7.81.182"));
$contentArr = explode("\n",$content);

然后使用lineNum - 1访问所需的值,因为数组索引从零开始。

$lineNum = 2;
echo $contentArr[$lineNum-1];
$lineNum = 5;
echo $contentArr[$lineNum-1];
$lineNum = 6;
echo $contentArr[$lineNum-1];

完整代码

$content = htmlentities(file_get_contents("http://ip-api.com/line/58.7.81.182"));
$contentArr = explode("\n",$content);
$lineNum = 2;
echo $contentArr[$lineNum-1];
$lineNum = 5;
echo $contentArr[$lineNum-1];
$lineNum = 6;
echo $contentArr[$lineNum-1];