![]() |
[PHP]PHP Code im String soll vor Ausgabe interpretiert werdn
Hallo,
Ich habe einen String der mitunter PHP- Code enthält z.B
Code:
Lasse ich $string nun mit echo ausgeben, so präsentiert mir der Browser ja diesen String, ohne dass das PHP Konstrukt darin interpretiert wurde. Wie schaffe ich nun die Ausgabe, dass er den Teil in <?php vorher interpretiert und dann ausgibt?
$string = '<html>...<?php include("../test.txt") ?>..</html>';
|
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
Entweder Doublequotes "" verwenden, oder auspunkten: 'test'.$bla.'test'
Tante Edith will noch ergänzen: Bei Doublequotes kann eine Variable entweder direkt im String stehen oder mti dem Punktseparator getrennt werden:
Code:
Bei Singlequotes werden sie nur separiert geparst:
$foo = "Test";
$string = "Dies ist ein $foo"; // -> Dies ist ein Test $string = "Dies ist ein ".$foo; // -> Dies ist ein Test
Code:
Nochmal Tante Edith:
$foo = "Test";
$string = 'Dies ist ein $foo'; // -> Dies ist ein $foo $string = 'Dies ist ein '.$foo; // -> Dies ist ein Test Verwendest du "", musst du übrigens escapen:
Code:
$string = "Bla sagt:"blubb" und geht."; // -> Falsch / Gibt nen Parse Error
----------------- So, und nun ordentlich: Da hab ich wohl ganz gravierend was übersehen. Bekommst du die Daten so? Wenn ja, schau dir mal [url]http://de.php.net/eval[/url] an, ansonsten verwende doch lieber [url]http://de.php.net/file-get-contents[/url] air $string = "Bla sagt:\"blubb\" und geht."; // Richtig -> Bla sagt:"blubb" und geht. |
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
nein der string ist fest, da kann ich nichts daran ändern... wenn dann müsste ich mir die position von <?php suchen und dann das danach bis ?> mit .phpcode. anhängen, fand das aber zu umständlich weil ich dachte es gäbe ein funktion die das schon kann.
|
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
|
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
Habe diesen Code-Schnipsel bei einem Kommentar auf
![]()
Code:
Was muss ich ändern?
function eval_mixed_helper($arr){
return ("echo stripslashes(\"".addslashes($arr[1])."\");"); } function eval_mixed($string){ $string = "<? ?>".$string."<? ?>"; $string = preg_replace("/<\?=\s+(.*?)\s+\?>/", "<? echo $1; ?>", $string); $string = str_replace('?>', '', str_replace( array('<?php', '<?'), '', preg_replace_callback( "/\?>((.|\n)*?)<\?/","eval_mixed_helper",$string) ) ); return eval($string); } // output to variable $final_html = eval_mixed($meinstring); echo $final_html |
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
hi flo,
eval() gibt keinen string zurück, den du per echo zum ausführen bringst. sondern es führt den im paramater enthaltenen php-code direkt aus. demnach kannst du die zeile return eval(...); löschen und stattdessen nur eval(...); dahin schreiben. an der stele wird der code dann ausgeführt. aenogym |
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
OK, aber der Fehler kommt weiterhin.
Hier der der Teil des $meinstring an dem es liegt:
Code:
Warum kommt der Fehler?
<div class="lauftext"> <marquee scrolldelay="80" behavior="scroll"><?php include("http://localhost/editor/pages/news.txt") ?> </marquee></div>
Edit1: Zu Testzwecken habe ich mal "include (...)" mit "$i=5;echo $i;" ersetzt. Dann kommt die Fehlermeldung: unexpected T_Variable... Er erwartet vielleicht noch etwas nach meinem <?php ? Edit2: OK jetzt klappt es. Ich habe <?php durch <? ersetzt. <?php finde ich aber "schöner", wie muss ich die Funktion die ich gefunden habe umschreiben, damit es auch so klappt? Steig nicht ganz durch bei der Funktion. Wenn es aufwändig wäre, dass das mit <?php auch geht dann lass ich es so, es sei denn es hätte wirkliche Vorteile <?php statt <? zu nutzen. |
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
Eigentlich dürfte es zwischen "<?php" und "<?" keine Unterschiede geben. Ich hab sowas jedenfalls noch nie feststellen können (ist halt nur der Schönheit zuliebe - oder des Programmierstils). :gruebel:
edit: Vielleicht könntest du versuchen, "echo $i;" durch "echo($i);" oder durch
Code:
zu ersetzen. ;)
echo "$i";
|
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
Zitat:
|
Re: [PHP]PHP Code im String soll vor Ausgabe interpretiert w
Laut einem Userkommentar auf php.net macht es doch einen unterschied zwischen <? und <?php.
Hier der Quote: Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz