Avatar billede Wiggit Nybegynder
22. juni 2011 - 09:04 Der er 8 kommentarer og
1 løsning

Vise en PHP kode i PHP.

Hvordan kan jeg gøre så jeg kan udskrive en PHP kode i PHP.
Har denne kode, men den giver fejl når jeg bruger ' i den kode jeg skal udskrive. Nogle måder at løse dette på, eller nogen der har en anden løsning på mit problem?
<?php
$mycode = '<?php echo("hello");?>';
$stvarno = array ("<", ">");
$zamjenjeno = array ("<",">");
$code = str_replace($stvarno, $zamjenjeno, $mycode);
echo ("$code");
?>
Avatar billede HBP2 Praktikant
22. juni 2011 - 10:50 #1
Du skal bruge funktionen htmlspecialchars() til at "escape" PHP sourcen:

$mycode = '<?php echo("hello");?>';
echo htmlspecialchars($mycode);
Avatar billede Wiggit Nybegynder
22. juni 2011 - 11:15 #2
Virker stadig ikke. Bruger jeg ' i den kode jeg skal udskrive, virker det ikke.
Avatar billede majbom Novice
22. juni 2011 - 11:25 #3
http://php.net/manual/en/function.htmlspecialchars.php

den escaper også '

hvordan angiver du strengen der skal bruges?
Avatar billede HBP2 Praktikant
22. juni 2011 - 11:29 #4
Så brug en af de andre relaterede funktioner: htmlentities() burde virke med alle tegn.
Avatar billede Wiggit Nybegynder
22. juni 2011 - 12:16 #5
Hvis jeg nu feks gør sådan her, så er siden tom/den udskriver det ikke:
<?php
$mycode = '<?php echo('hello');?>';
echo htmlspecialchars($mycode);
?>


Bruger jeg istedet <?php echo("hello");?> , virker det som det skal.
Avatar billede Slettet bruger
22. juni 2011 - 12:20 #6
$mycode = '<?php echo("tre \'små\' kinesere");?>';
echo htmlspecialchars($mycode,ENT_QUOTES);

Altså: Når du bruger ' i den kode der skal vises (men ikke udføres) skal du escape ' (sæt en \ foran).
- for ellers "ødelægger" du syntaxen allerede når $mycode skal have sit indhold.
Avatar billede majbom Novice
22. juni 2011 - 12:52 #7
som T0M skriver er det klart det ikke virker, da du afslutter din streng efter ( og derefter skriver "hello" og starter strengen igen - det kan man ikke.
Avatar billede Slettet bruger
22. juni 2011 - 17:28 #8
Lige en lille note... du kan bruge highlight_string('php code', true)-funktionen til at vise highlighted PHP kode (highlighted = farver).

Kode eksemple:
<?php
$kode = '<?php print "Sikke\'n dejlig dag det er i dag!"; ?>';

print highlight_string($kode, true);
?>
Avatar billede Slettet bruger
22. juni 2011 - 18:14 #9
#8 cool : )
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester