【问题标题】:Codeigniter Controller cannot use function within helperCodeigniter 控制器不能使用助手中的函数
【发布时间】:2023-03-02 23:54:01
【问题描述】:

我有控制器

<?php

class Onetimescan extends CI_Controller{

    public function index() {
            #LOAD -->>>> LIB ###########
           $this->load->library('session');  ##    LOAD LIBS:  SESSION 
           $this->load->helper('simpledom');

           #LOAD -->>>> MODEL
           $this->load->model('scanmodel');
                $this->scanmodel->loadurlbasedonsessid($this->session->userdata('session_id')); // echo out inserted domain in loadurlbasedonsessid() func
                $sss= $this->session->userdata('tld'); // echo $sss;

       $siteToSearch = file_get_html($sss);
       foreach($siteToSearch->find('form') as $element){
            echo "<h1 style='color:red; '>".$element->action."</h1> <br />";
        }     
    }
}
?>

我在这一行收到了一个致命错误 Call to a member function find() on a non-object

   foreach($siteToSearch->find('form') as $element){

simpledom 是我在顶部加载的一个助手(实际上称为 simpledom_helper.php),它的 file_get_html 定义如下:

[http://pastebin.com/HaJtKfNb][1]

我在这里做错了什么?我尝试定义 public function file_get_html{} 之类的函数,但这会引发错误。

我通过添加解决了这一切:

$prefix = "http://www.";
                //echo "SSS is:  ".$sss;
           $siteToSearch = file_get_html($prefix.$sss);

已修复>> 该 url 试图 get_file_contents(somedomain.com) 并且缺少 http://www. 作为完全合格的域。这个函数get_file_contents似乎需要http://www.

【问题讨论】:

    标签: php codeigniter custom-controls helper helpers


    【解决方案1】:

    辅助函数应该这样调用,因为它们不是对象:

    $this->load->helper('simpledom');    
    $siteToSearch = file_get_html($sss);
    

    【讨论】:

    • 请查看我收到的新错误。这个 $siteToSearch 修复了第一个问题。我真的很感激。
    • 参见上面的固定代码。我很乐意自己解决这个问题,不过感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 2019-09-17
    • 2021-05-03
    • 2011-06-10
    • 1970-01-01
    相关资源
    最近更新 更多