我试图从控制器文件中调用CakePHP中的第三方库函数。
我的控制器文件中有这个:
public function index() {
App::import('vendor', 'simple-html-dom.php');
App::import('vendor', 'utils.php');
set_time_limit(0);
$html = file_get_html("google.com");
...
}
我还有app/vendor
个simple-html-dom.php
和utils.php
个文件。
file_get_html
是simple-html-dom.php
中的公共函数(并且它不属于任何类)。我最终得到了这个错误:
Error: Call to undefined function file_get_html()
我一直在努力寻找如何解决这个问题,但我还没有找到答案。
答案 0 :(得分:2)
App::import('Vendor', 'simple_html_dom', array('file'=>'simple_html_dom.php'));
$html = file_get_html("google.com");
答案 1 :(得分:1)
尝试
public function index() {
App::import('vendor', 'simple-html-dom.php');
App::import('vendor', 'utils.php');
set_time_limit(0);
$SimpleHtmlDom = new SimpleHtmlDom(); // create object for html dom
$html = $SimpleHtmlDom->file_get_html("google.com");
}
确保simple-html-dom.php
文件包含类,然后在加载create object
后需要class
vendor
。{/ p>
因为要访问该课程的methods
和property
,您需要创建该课程的object
。
您还可以使用method
在同一个班级中访问Self::file_get_html();
,但这适用于class declaration
内部。
更多帮助
App::import('Vendor', 'example', array('file' => 'Example.php'));
$example = new Example();
在上面的代码我包括供应商文件。
<强>解释强>
上面的代码将加载Example.php
目录中的vendors/example
文件。
如果您的vendor
文件未正确加载,则会导致class not found
错误。