Saypontigohe Saypontigohe - 1 year ago 87
PHP Question

Store variable from preg_split, and use it it comination with the word

I am still facing a major problem, which in a previous question was unfortunally not answered. I want to do the following:

I have a custom made cms, where i want to use shortcodes to use plugins. It is working like this:

this is a text
this is more text
and some more

What it outputs is this:

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

This is working fine, but what i want is to have a specific id from the plugin, which i want to call with
[plugin-blog 2]
. I need to store the number of the plugin and use it later inside the php file of the plugin like this
SELECT * FROM 'plugin_db' WHERE 'id' = $value_from_shortcode

How can I do this? I am totally blank on how to approach this problem. I tried literally everything, but either the loop is not working anymore, of the number is not saved with the comination of the plugin name. I have the following code:

$regex = '~\[plugin-([^]]+)]~';
$content_one = htmlspecialchars_decode($page['content_one']);
$parts = preg_split($regex, $content_one, -1, PREG_SPLIT_DELIM_CAPTURE);

foreach($parts as $k => $v){
if($k & 1)
echo htmlspecialchars_decode($v);

Answer Source

You can retrieve the id and the name with:

    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);

Note: keep the test $k & 1 to deal with all plugins.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download