在许多 url 超时问题上查找源代码中的字符串的代码

发布于 2024-11-01 02:47:36 字数 1282 浏览 3 评论 0原文

我想输入一个很长的网址列表,并在源代码中搜索特定字符串,输出包含该字符串的网址列表。听起来很简单吧?我有以下代码,您可以在 pelican-cement.com/findfrog 上尝试。

问题是每次我搜索超过 10 个左右的网址时都会超时

<html>
<body>

<form action="search.php" method="post"> 
  URLs: <br/>
  <textarea rows="20" cols="50" input type="text" name="url" /></textarea><br/>

  Search Term: <br/>
  <textarea rows="20" cols="50" input type="text" name="proxy" /></textarea><br/>

  <input type="submit" /> 
</form>

<?
set_time_limit (0);
  if(isset($_POST['url'])) {


    $urls = explode("\n", $_POST['url']);
    $term = $_POST['proxy'];
    $options = array( CURLOPT_FOLLOWLOCATION => 1,
                      CURLOPT_RETURNTRANSFER => 1,
                      CURLOPT_CUSTOMREQUEST  => 'GET',
                      CURLOPT_HEADER         => 1,
                      );
    $ch = curl_init();
    curl_setopt_array($ch, $options);

    foreach ($urls as $url) {
      curl_setopt($ch, CURLOPT_URL, trim($url));
      $html = curl_exec($ch);

      if ($html !== FALSE && stristr($html, $term) !== FALSE) { // Found!
        echo $url;
        echo "<br>";
      }
    }

    curl_close($ch);
    echo "space";
  }
?>
</html>

I want to enter a very long list of urls and search for specific strings within the source code, outputting a list of urls that contain the string. Sounds simple enough right? I have the bellow code, you can try it at pelican-cement.com/findfrog.

The problem is that it times out every time I search for over 10 or so urls

<html>
<body>

<form action="search.php" method="post"> 
  URLs: <br/>
  <textarea rows="20" cols="50" input type="text" name="url" /></textarea><br/>

  Search Term: <br/>
  <textarea rows="20" cols="50" input type="text" name="proxy" /></textarea><br/>

  <input type="submit" /> 
</form>

<?
set_time_limit (0);
  if(isset($_POST['url'])) {


    $urls = explode("\n", $_POST['url']);
    $term = $_POST['proxy'];
    $options = array( CURLOPT_FOLLOWLOCATION => 1,
                      CURLOPT_RETURNTRANSFER => 1,
                      CURLOPT_CUSTOMREQUEST  => 'GET',
                      CURLOPT_HEADER         => 1,
                      );
    $ch = curl_init();
    curl_setopt_array($ch, $options);

    foreach ($urls as $url) {
      curl_setopt($ch, CURLOPT_URL, trim($url));
      $html = curl_exec($ch);

      if ($html !== FALSE && stristr($html, $term) !== FALSE) { // Found!
        echo $url;
        echo "<br>";
      }
    }

    curl_close($ch);
    echo "space";
  }
?>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南巷近海 2024-11-08 02:47:36

尝试修改时间限制。

foreach ($urls as $url) {
  set_time_limit(120);
  curl_setopt($ch, CURLOPT_URL, trim($url));
  $html = curl_exec($ch);

每个网址 2 分钟

Try modifying the time limit.

foreach ($urls as $url) {
  set_time_limit(120);
  curl_setopt($ch, CURLOPT_URL, trim($url));
  $html = curl_exec($ch);

This is 2 minutes for each url

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文