/ / Zamień ciąg znaków shortcode na kod lub funkcję php? - php, bbcode

zamieniać kod shortcode na kod php lub funkcję? - php, bbcode

Próbuję opracować zamiennik kodu, aleChciałbym tylko, aby użytkownik mógł napisać coś w rodzaju [pokaz slajdów] 10 [/ slideshow], a następnie zrobić pokaz slajdów o numerze 10, który jest tak daleki jak ja chodź:

$slideArray = array(preg_match_all("/[slideshow](.*?)[/slideshow]/is", $post, $matches));

W ten sposób:

for ($o = 0; $o <= $count; $o++)
{
$query = mysql_query("SELECT * FROM slideshow WHERE id = "". $matches[1][$o]. "" LIMIT 1");
while ($row = mysql_fetch_assoc($query))
{
// Slideshow code appears here
}
}

To działa, ale teraz muszę zdecydować, czypokaz slajdów pojawia się u góry postu lub u dołu. Ale jeśli chcę, aby ten pokaz slajdów pojawił się tam, gdzie użytkownik go zapisał. Możliwe, że pojawi się na przykład w środku tekstu. W takim razie można utworzyć funkcję tego, a następnie użyć preg_replace, aby zastąpić [pokaz slajdów] 10 [/ slideshow] kodem zapytania powyżej. Przepraszam za mój słaby angielski.

Z poważaniem

Odpowiedzi:

1 dla odpowiedzi № 1

Dodaj coś takiego w polu "// Pokaz slajdów tutaj"

$post = str_replace($matches[0][$o], $row["slideshowfield"], $post);

Cały kod powinien wyglądać mniej więcej tak:

preg_match_all("/[slideshow](.*?)[/slideshow]/Usi", $post, $matches);

if(!empty($matches[1])){
foreach($matches[1] as $o => $slideshow_id){
$query = mysql_query("SELECT * FROM slideshow WHERE id = "". (int)$slideshow_id. "" LIMIT 1");
if($row = mysql_fetch_array($query)){
$post = str_replace($matches[0][$o], $row["slideshow_html_fieldname"], $post);
}
}
}