我试图让它成为我的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行。
答案 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];