Gå til innhold

Kjøre PHP script ved bbkode?


Anbefalte innlegg

Vist jeg skriver bbkoden [include=index.php] skulle jeg gjerne hatt det slik at index.php ble inkludert..

 

Er dette mulig å få til?

 

Jeg har altså et script som printer ut info fra en database, før det blir vist på siden går det gjennom et bbkode script som gjør om alt bbkode til det som det skal gjørs om til.

 

Så, er det mulig å erstatte bbkoden med et php script, isteden for html?

Vet jeg har sett dette, f.eks på streetzmafia.net, men har ingen aning om hvordan dette lar seg gjøre.

 

På forhånd takk og god helg :)

Endret av goggen90
Lenke til kommentar
Videoannonse
Annonse

Noe sånn her?

 

<?php
function et_eller_annet($t) {
$t = preg_replace("(\[include\=(.+?)\])is", '<?php include '$1'; ?>', $t);
return $t;
}
?>

 

 

Tror ikke den vil fungere helt, men noe sånt noe kanskje?

 

 

Edit:

Da skriver du noe sånt på outputen:

echo et_eller_annet($string);

Endret av Anders-Moen
Lenke til kommentar

<?php

$remote = FALSE; // or FALSE
$str = "[include=foo.php][include=http://www.foo.bar/foobar.php]";
$include = preg_match_all('/\[include\=(.*?)\]/i', $str, $matches);

foreach ( $matches[1] as $k )
{
if ( $include > 0 )
{
 if ( $remote === FALSE )
 {
 	if ( ! preg_match ( "#^((http|ftp)s?)://#i", $k))
 	{
   include ( $k );
 	}
 	else
 	{
   die ( "Remote inclusion not allowed" );
 	}
 }
 else
 {
 	include ( $k );
 }
}
}
?>

Burde fungere.

Lenke til kommentar

Takk, men trenger ikke "remote inclusion protection" ;)

 

Vil det scripte inkludere der du skriver bbkoden eller der funksjonen for bbkoder blir inkludert / satt? ;)

 

Eventuelt kan jeg bare ha [foo] som inkluderer foo.php, men det må bli inkludert på det stedet bbkoden er satt..

 

For å oppsummere, vist jeg skriver: "Hei og [foo]"

Og foo.php inneholder "hallo" skal det til slutt komme:

"Hei og hallo" ..

Endret av goggen90
Lenke til kommentar
<?php

function bbinclude($string)
{
 $pattern = '/\\[include\\=([\'"])?([A-Za-z0-9\\\.]*)\\1?\]/';
 preg_match_all($pattern, $string, $matches);
 $filename = $matches[2][0];
 $file = file_get_contents($filename);
 
 return preg_replace($pattern, $file, $string);
}

?>

Endret av grimjoey
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...