【发布时间】:2021-09-29 17:00:12
【问题描述】:
我正在尝试从 BBCode 调用一个函数(如 WordPress 短代码)。但我没有找到任何代码来做到这一点,只有我找到了 HTML 标签解析器,如:
[bold]Bold text[/bold]
->
<b>Bold text</b>
但我想将其保存为数组,例如:
[date format="j M, Y" type="jalali"]
到这样的事情:
array(
'date' => array(
'format' => 'j M, Y',
'type' => 'jalali'
)
)
*已编辑
我为此编写了一个代码(如果我的英语不好,请见谅):
[date format="Y/m/d" type="jalali"] =>
Step 1: Get code between "[" and "]":
date format="Y/m/d" type="jalali"
Step 2: Explode space in the code:
$code = array('date', 'format="Y/m/d"', 'type="jalali"')
Step 3: Get shortcode name(offset 0 of $code) and get
difference($code excluded offset 0):
$name = 'date'
$attr = array('format="Y/m/d"', 'type="jalali"')
Step 4: Now I have attributes and code name. But the problem is if
put space in attributes value it will explode that too:
[date format="j M, Y" type="jalali"] =>
$code = array('date', 'format="j', 'M,', ' Y"', 'type="jalali"');
现在我该如何解决这个问题或使用正则表达式或其他方法获取名称和属性?
【问题讨论】:
-
欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 以了解如何提高问题的质量。目前尚不清楚您的问题是什么或您的问题是什么。请edit您的问题包含对您遇到的问题或您正在尝试做的事情的详细描述。
-
你可以自己制作解析器
-
如果您的代码已经在工作,那么缺少什么?你能分享你正在使用的代码吗?