doupo5178 2017-03-10 17:27
浏览 59
已采纳

在foreach循环中声明函数

I am trying to create a foreach loop which would visit a link from an array of links and get contents from each of the visited websites.

But when I try to run it:

<?php
    require('simple_html_dom.php');

    // Create DOM from URL or file
    $html = file_get_html('http://www.forgolf.cz/index.php/novinky.html');

   $titles = [];
    $links = [];
    $img_src = [];
    $paragraph = [];

   foreach ($html->find('h2 a') as $title) {

       $links[] = $title->getAttribute('href');
        $titles[] = $title->innertext;
    }

   foreach ($html->find('.item-inner p img') as $img) {
        $img_src[] = $img->getAttribute('src');
    }


   foreach ($links as $link) {
        require('simple_html_dom.php');

        $html = file_get_html('http://www.forgolf.cz'. $link);
        foreach ($html-find('.item-page p') as $p) {
            if (is_string($p))
                $paragraph[] = $p->innertext;
        }
    }
?>

I get Fatal error: Cannot redeclare file_get_html()

And when I dont include the require('simple_html_dom.php');

I get: Fatal error: Uncaught Error: Call to undefined function find()

So I am realy confused.

Anyone got any ideas how to repaire this.

  • 写回答

2条回答 默认 最新

  • duanfengdian7014 2017-03-10 17:42
    关注

    please change code few line

     foreach ($links as $link) {
            require('simple_html_dom.php'); **// here** comment line like **//require('simple_html_dom.php');**
    
            $html = file_get_html('http://www.forgolf.cz'. $link);
            foreach ($html-find('.item-page p') as $p) {
                if (is_string($p))
                    $paragraph[] = $p->innertext;
            }
        }
    ?>
    

    Finally Code

        <?php
    require ('simple_html_dom.php');
    
    // Create DOM from URL or file
    
    $html = file_get_html('http://www.forgolf.cz/index.php/novinky.html');
    $titles = [];
    $links = [];
    $img_src = [];
    $paragraph = [];
    
    foreach($html->find('h2 a') as $title)
        {
        $links[] = $title->getAttribute('href');
        $titles[] = $title->innertext;
        }
    
    foreach($html->find('.item-inner p img') as $img)
        {
        $img_src[] = $img->getAttribute('src');
        }
    
    foreach($links as $link)
        {
    
        // require('simple_html_dom.php');
    
        $html = file_get_html('http://www.forgolf.cz' . $link);
        foreach($html->find('.item-page p') as $p)
            {
            if (is_string($p)) $paragraph[] = $p->innertext;
            }
        }
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示