我们正在努力为我们创建一个基本系统。在我们想要创建像[gallery id="1"]
这样的短代码的地方,我们已经创建了这种短代码方式。
但是当它出现在以下内容之间时:
<h1>Some Title</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer purus purus, scelerisque ut ex non, pharetra interdum tellus. Aenean sed libero a ipsum vestibulum feugiat quis quis magna. Mauris a condimentum mi, et feugiat leo.</p>
[gallery id="1"]
这是我的模板从编辑器看起来的样子。我如何阅读相关[gallery id="1"]
并使其成为像这样的函数
gallery(1)
。
有什么方法可以做到这一点吗?我在这里使用的是WYSIWYG编辑器,数据保存在MySQL数据库中。
答案 0 :(得分:1)
答案的开头:你必须使用这样的正则表达式:
#\[gallery id\=\"([0-9]+)\"\]#
这将获得所有[gallery id =&#34; XXX&#34;],()
将允许您捕获实际数字,然后调用您的gallery(XXX)
函数
答案 1 :(得分:0)
我认为RegEx模式应该有用。 对不起,我在RegEx上并不擅长,但这是我的模式:
答案 2 :(得分:0)
我创建了一个与框架无关的库,以支持纯PHP项目中的[shortcodes]
:https://github.com/thunderer/Shortcode。你只需要创建库实例,为你想要使用的短代码注册名称处理程序,你就可以了。
你的案例会像这样解决(我从README中拿了这个例子):
// put those in the use block on top of your file:
use Thunder\Shortcode\Extractor;
use Thunder\Shortcode\Parser;
use Thunder\Shortcode\Processor;
use Thunder\Shortcode\Shortcode;
// code below does the magic:
$processor = new Processor(new Extractor(), new Parser());
$processor->addHandler('gallery', function(Shortcode $s) {
// return here any HTML code you need
return $s->getParameter('id'); // this will return "id" parameter
});
$processor->process('[gallery id="2"]'); // will return "2"