使用javasctipt自动化PHP脚本

时间:2017-03-07 16:44:12

标签: javascript php

自动化php脚本以读取文件中的1000个链接并生成输出的最简单方法是什么?

我有这个PHP代码来读取他们是否有效的链接。目前我每次都在max 500 links文件中复制/粘贴urls.txt并产生结果,我的服务器不能处理更多。我需要查看15-20K links

<?php
$handle = fopen("urls.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $link = trim($line);
        $isValid = CheckLinks($link);
        if($isValid){
            echo "$link". "<br>";

        }else{
            echo "";
        }
    }

    fclose($handle);
} else {
    echo "Could not read urls.txt";
} 

function CheckLinks($link) {
    $url = $link;
    $extpage = file_get_contents($url);
    $notValid = strpos($extpage,"This page doesn't exists.");

    return !$notValid;
}
?>

应该添加什么来检查此链接数量?

编辑:我希望它读取400-500行并给出输出然后接下来的500行,依此类推。

我是新手,如果我问得太多,请原谅我。

1 个答案:

答案 0 :(得分:0)

您可以在每次检查后将脚本放到sleep

while (($line = fgets($handle)) !== false) {
    $link = trim($line);
    $isValid = CheckLinks($link);
    if($isValid){
        echo "$link<br>";
    } else {
        echo "";
    }
    sleep(1); // add this line
}

如果每次迭代的1秒睡眠时间太长,您可以使用一个计数器,您可以增加到想要执行的检查次数,然后睡几秒钟并重置计数器。

最后,如果时间限制有问题,您可以使用set_time_limit(0)完全删除限制。