【发布时间】:2011-02-03 02:12:21
【问题描述】:
我正在使用 PHP,也是一个完全的菜鸟。
所以我有这个 URL,它接受查询并返回一个带有一些匹配项的数据文件。
说 www.example.com/search?q=$query 其中 $query 是搜索词。
但是,当您在浏览器中访问 URL 时,它会下载一个包含信息的文本文件。
我想遍历整个字母表以及最多 10 个字母的每个字母组合,并从所有返回的文件中提取数据并将其存储在数据库中。
我不确定如何从 PHP 脚本打开每个 URL。有没有比下载每个文件并提取信息然后删除文件更好的方法?
我下面的内容根本不起作用。
$alphabet = "abcdefghijklmnopqrstuvwxyz";
for ($i=0; $i<=25; $i++){
$query = $alphabet[$i];
$url = "www.example.com/search?q=$query";
$html = fopen($url);
$stringify = (string)$html;
echo $stringify;
}
【问题讨论】:
-
您的脚本是否与您的文件在同一台服务器上运行?
-
我知道您并没有对脚本做任何认真的事情,但请确保您获取任何像这样的输入数据并擦洗它。如果数据是恶意制作的,它很容易对您的数据库造成不良影响。 Stack Overflow 上有很多相关的问题和答案。
-
无论如何,如果此脚本在同一台服务器上运行,更简单的方法是使用 glob() 并获取所有 [a-zA-Z]{1,10}.txt (或任何文件扩展名)文件,然后遍历它们。
-
您知道从 1 到 10 的每个字母组合都会产生约 146 万亿的结果,对吧?你可能需要重新考虑你需要做什么——无论你做什么都可能行不通。
-
@Phil Brown:你可以,但你会得到类似“Resource id #1”的值:P,但他也忽略了向 fopen 添加第二个参数()
标签: php autocomplete scrape