我需要使用 PHP 从 html/php 文件中删除动态信息

Posted

技术标签:

【中文标题】我需要使用 PHP 从 html/php 文件中删除动态信息【英文标题】:I need to strip dynamic information from a html/php file with PHP 【发布时间】:2010-10-27 12:24:18 【问题描述】:

我一直在尝试从动态生成的页面中提取信息,然后将信息插入数据库,这只是一次性的事情。解释布局:

我的数据库中目前有一个包含 700 个 IP 地址的列表,但它们没有链接到它们的位置,我正在使用以下代码从 hostip.info 检索信息并将返回的数据插入到循环中的变量中:


dbconnect();
$tbl_name = 'Votes';
$sql = "SELECT * FROM $tbl_name LIMIT 10"; //THIS LIMIT IS ONLY A TEMPORARY //
$result=mysql_query($sql);  
$rows=mysql_fetch_array($result);
while($rows=mysql_fetch_array($result)) 
     echo $rows['UIP']; //This is the IP stored currently
     $file_l = file_get_contents('http://api.hostip.info/get_html.php?ip='.$rows['UIP'].'&position=true');


对于每个测试的 IP,从 hostip.info 返回的信息看起来有点像这样:

Country: UNITED KINGDOM (GB)
City: (Unknown city)
Latitude: 
Longitude: 
IP: 79.170.40.245

只是在纯文本中,我基本上想从中获取纬度、经度和城市并将其输入数据库,但是,城市、纬度和经度都是不同的长度。有没有什么办法可以用 preg_match 或类似的东西来剥离这些信息,我试过但无法弄清楚。任何想法都非常感谢。

【问题讨论】:

【参考方案1】:

你应该改用这个网址:

http://api.hostip.info/?ip=$rows['UIP']

它返回更易于解析的 XML。你甚至可以在 AJAX 中这样做 \o/

Source

【讨论】:

我非常痉挛。干杯。我应该考虑尝试 XML。【参考方案2】:

无需为如此简单的事情而使用 XML 解析器。

while($rows=mysql_fetch_array($result)) 

    echo $rows['UIP']; //This is the IP stored currently
    $file_l = file_get_contents('http://api.hostip.info/get_html.php?ip='.$rows['UIP'].'&position=true');

    $lines = explode("\n", $file_l);
    $values = array();
    foreach($lines as $line)
    
        $s = explode(':', $line);
        $values[$s[0]] = trim($s[1]);
    
    doSomethingWith($values['City'], $values['Latitude'], $values['Longitude']);

【讨论】:

太棒了,这正是我所需要的,为您的所有输入喝彩【参考方案3】:
<?php
$str="Country: UNITED KINGDOM (GB) City: (Unknown city) Latitude: Longitude: IP: 79.170.40.245";
$arr=explode(" ",$str);
echo "<pre>";
print_r($arr);
?>

【讨论】:

以上是关于我需要使用 PHP 从 html/php 文件中删除动态信息的主要内容,如果未能解决你的问题,请参考以下文章

如何不让用户直接从AJAX使用的浏览器访问php文件?

如何使用 wget 从网站下载所有文件(但不是 HTML)?

如何使用 Ajax 函数从 php 服务器获取会话变量? (PHP HTML JS Ajax)

从 HTML PHP 生成 PDF

thinkphp把HTML+PHP写的一个页面代码存入数据库以后 读取出来的效果HTML代码解析了PHP代码被直接输出

使用 php 在 HTML 表中显示 sql 数据