我仍然面临一个重大问题,在之前的一个问题中,我很难回答。我想做以下事情:
我有一个定制的cms,我想使用短代码来使用插件。它的工作原理如下:
let filtered = exercises.filter { $0.name == searchText }
它输出的是:
this is a text
[plugin-blog]
this is more text
and some more
[plugin-contact]
这很好用,但我想要的是从插件中获取一个特定的id,我想用this is a text
include_once('plugins/blog/blog.php'); <- loads specific file for plugin
this is more text
and some more
include_once('plugins/contact/contact.php'); <- loads specific file for plugin
调用它。我需要存储插件的编号,稍后在插件的php文件中使用它,如[plugin-blog 2]
我该怎么做?关于如何处理这个问题我完全是空白的。我尝试了所有的东西,但要么循环不再工作,数字不会与插件名称的保存一起保存。我有以下代码:
SELECT * FROM 'plugin_db' WHERE 'id' = $value_from_shortcode
答案 0 :(得分:2)
您可以使用以下命令检索ID和名称:
foreach($parts as $k => $v){
if($k & 1) {
$id = preg_replace('/\D+/', '', $v);
$v = preg_replace('/\d+/', '', $v);
echo "id = $id\n";
include ('plugins/'.$v.'/'.$v.'.php');
} else {
echo htmlspecialchars_decode($v);
}
}
注意:让测试$k & 1
处理所有插件。
答案 1 :(得分:1)
来自父作用域的变量应该可以作为包含文件中的全局变量使用:
鉴于:以下是test.php
<?php
$foo = "test";
include('./b.php');
这是b.php:
<?php echo $foo;
正在运行test.php
会输出test
因此,在您的情况下$k
和$v
将在您包含的文件中提供,因此您可以执行类似的操作:
if (1 == $k) {
$id = $v;
include_once('plugins/'.$v.'/'.$v.'.php');
}
请考虑学习PHP和最佳实践。