我正在尝试使用Codeigniter的Php Markdown。我保存了文件" Markdown.php"作为markdown_helper.php。 我已将它放在applications / helpers目录中。 我用这个语句在我的控制器中加载了帮助器。
$这 - >负载>辅助('降价&#39);
我已使用此语句调用defaultTransform函数()
$ note_body = defaultTransform($ note_body);
我收到此错误。
致命错误:调用未定义的函数defaultTransform()
加载帮助程序时我做错了什么?
答案 0 :(得分:1)
我不熟悉Codeigniter,但看起来PHP Markdown不适合它的'帮助'的定义,它是'简单的,程序化的函数'的集合--Markdown.php是面向对象的。请参阅文档here。
如果将Codeigniter和PHP Markdown分开,会发生什么?尝试使用
手动添加markdown_helper.php
require_once(APPPATH . 'applications/helpers/markdown_helper.php');
use \Michelf\Markdown;
然后像这样使用它:
$note_body = Markdown::defaultTransform($note_body);
答案 1 :(得分:1)
我最终通过创建一个扩展Markdown类的瘦库来实现这一目标。
来自:http://blog.gauntface.co.uk/2014/03/17/codeigniter-markdown-libraries-hell/
将Michel Fortin的markdown文件放入third_party目录,在我的例子中,我创建了一个名为Md的目录,并将php文件移动到该目录的根目录,然后在libraries目录中创建一个名为md.php的文件。最后在你的md.php中输入以下内容:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
set_include_path(APPPATH . 'third_party/' . PATH_SEPARATOR . get_include_path());
require_once APPPATH . 'third_party/Md/MarkdownInterface.php';
require_once APPPATH . 'third_party/Md/Markdown.php';
class Md extends Michelf\Markdown {
function __construct($params = array()) {
parent::__construct();
}
}
然后导入并使用它:
$this->load->library('md');
$html = $this->md->defaultTransform($markdown);
答案 2 :(得分:0)
如果您使用Linux,请尝试运行以查找包含defaultTransform函数的文件,并在您的代码文件中包含:
fgrep defaultTransform -r -n *
答案 3 :(得分:0)
使用$this->load->helper('markdown')
代替$this->load->helper('markdown_helper')
。
CI会自动附加文件名的_helper.php
部分。