Ich bin immer noch vor einem großen Problem, das in einer früheren Frage wurde leider nicht beantwortet. Ich möchte Folgendes tun:Speichern Variable von preg_split, und verwenden Sie es mit dem Wort
Ich habe eine benutzerdefinierte cms, wo ich shortcodes Plugins verwenden möchten. Es wird wie folgt arbeiten:
this is a text
[plugin-blog]
this is more text
and some more
[plugin-contact]
Was es gibt, ist dies:
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
Dies funktioniert gut, aber was ich will, ist eine spezifische ID des Plugins zu haben, die ich anrufen möchten mit [plugin-blog 2]
. Ich muss die Nummer des Plugins speichern und später in der PHP-Datei des Plugins verwenden. SELECT * FROM 'plugin_db' WHERE 'id' = $value_from_shortcode
Wie kann ich das tun? Ich weiß nicht, wie ich dieses Problem angehen soll. Ich habe wörtlich alles ausprobiert, aber entweder funktioniert die Schleife nicht mehr, die Nummer wird nicht mit der Eingabe des Plugin-Namens gespeichert. Ich habe den folgenden 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)
include_once('plugins/'.$v.'/'.$v.'.php');
else
echo htmlspecialchars_decode($v);
}
Sie stehen vor den Folgen eines sehr schlechten Designs und der folgenden Anti-Patterns und einem schlechten Verständnis dafür, wie php wirklich funktioniert. Dies ist eigentlich kein Problem mit preg_split, aber wahrscheinlich mit einem binären Operator anstelle von Boolean aus irgendeinem Grund? Was hast du von '$ k & 1' erwartet? Vergleiche es mit 1? In PHP tust du stattdessen '1 == $ k'. – baldrs
Oder ist das eine ungerade Zahl? Wie hat jede ungerade Zahl die letzte 1 in ihrer binären Darstellung? – baldrs
Der $ k & 1 ist der einzige Teil, den ich nicht selbst geschrieben habe, sondern ein Entwickler im Team, der es zum Laufen gebracht hat. Nicht sicher, was ist. Mein Wissen über PHP ist irgendwie grundlegend in dieser Sache :(Ich hoffe, jemand kann mir helfen. – Saypontigohe