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条)

报告相同问题?

悬赏问题

  • ¥500 高有偿提问!求优化设计微信小程序
  • ¥15 matlab在安装时报错 无法找到入口 无法定位程序输入点
  • ¥15 收益高的广告联盟有哪些
  • ¥15 Android Studio webview 的使用问题, 播放器横屏全屏
  • ¥15 删掉jdk后重新下载,Java web所需要的eclipse无法使用
  • ¥15 uniapp正式环境中通过webapi将本地数据推送到设备出现的跨域问题
  • ¥15 xui建立节点,显示错误
  • ¥15 关于#单片机#的问题:开始、复位、十进制的功能可以实现,但是切换八进制的功能无法实现(按下按键也没有效果),把初始状态调成八进制,也是八进制可以实现但是切换到十进制不行(相关搜索:汇编语言|计数器)
  • ¥15 VINS-Mono或Fusion中feature_manager中estimated_depth是特征的深度还是逆深度?
  • ¥15 谷歌浏览器如何备份抖音网页数据