如何从已经返回模板以在PHP/Codeigniter中查看的库函数中获取变量

如何从已经返回模板以在PHP/Codeigniter中查看的库函数中获取变量,php,mysql,codeigniter,web-scraping,Php,Mysql,Codeigniter,Web Scraping,我有一个库,它剥离了一个网页的数据以供查看,但是我很难将变量返回到我的模型/插入。到目前为止,我在我的 模型 ... function update_related($related_array) { $this->db->set($related_array); $this->db->insert('related_products'); } 在我的 控制器 ... public function index() { $data = array

我有一个库,它剥离了一个网页的数据以供查看,但是我很难将变量返回到我的模型/插入。到目前为止,我在我的

模型

...
function update_related($related_array)
{
    $this->db->set($related_array);
    $this->db->insert('related_products');
}
在我的

控制器

...
public function index()
{
    $data = array();

    if(isset($_GET['url']))
    {
        $data['url'] = trim($_GET['url']);
        if(!empty( $data['url']))
        {
            $this->load->library('scraping');
            $data['page'] = $this->scraping->curlFunc($data['url']);
        }else{
            $data['notice'] = 'URL is empty!!!';
        }
    }

    $this->load->view('view_x', $data);

    $this->load->model('Model_x','', TRUE); 
    $related_array = array(
        'x_id' => $var0,
        'freq_together' => $var1,
        'also_bought' => $var2,
        'created_at' => $var3
    );
    $this->Model_x->update_related($related_array);

}
图书馆(比这要长得多,但你知道了)

公共函数curlFunc($url)
{
...
$shdom=$shdom.“一起购买:”;
foreach($shdom2->find('.class td a')作为$e){
if(preg_匹配('/F00([^\/]*)/i',$e,$regs))
{
$r=$regs[0];
$shdom=$shdom.$r.,';
$Var1=$r;//请注意,这是一个用于插入模型的变量
...
}
返回$shdom;
} 
我正在尝试从这里返回数据,而不需要多次重新运行此刮取过程。更重要的是,我只需要一种干净、快速的方式将数据放入数据库并保持视图不变。对于Codeigniter/MVC来说,这是一种全新的方式(实际上选择此项目是为了提高MVC知识),因此欢迎对我的过程进行任何更改

查看

<form action="" method="get">
    <span>URL: </span>&nbsp;<input type="text" name="url" id="url"/>&nbsp;&nbsp;&nbsp;<input type="submit" value="GO!">
</form><br />
<?php
if (isset($page)){
    echo'<hr />';
    echo $page;
}
if (isset($notice)){

    echo "<h3>$notice</h3>";
}
?> 

网址:


我想我知道你在这里遗漏了什么, 在库级的codeigniter中,codeigniter实例不可用,所以需要加载它

通过在您的库构造中添加此内容或任何适合您需要的内容

$this->ci=&get_instance();

因此您可以访问codeigniter核心类,如
load

您现在可以通过以下方式轻松加载模型:
$this->ci->load->model('model_name');


ref

如何在库中加载模型?@AhmedSamy我尝试了这个方法,但出现了一个错误。但这对我来说是最有意义的,可能需要进行不同的编码。不过我对这个过程没有足够的经验。我得到了-----消息:未定义属性:刮取::$load-----这就成功了,+1d支票!我还得看一下链接,谢谢。
<form action="" method="get">
    <span>URL: </span>&nbsp;<input type="text" name="url" id="url"/>&nbsp;&nbsp;&nbsp;<input type="submit" value="GO!">
</form><br />
<?php
if (isset($page)){
    echo'<hr />';
    echo $page;
}
if (isset($notice)){

    echo "<h3>$notice</h3>";
}
?>