PHP PHP String HTML anhängen

HelloSpencer

Ensign
Registriert
März 2011
Beiträge
137
Hallo,

ich beschäftige mich momentan das erste mal mit PHP, da ich es gerne lernen möchte. Mein erster Feldversuch ist ein einfaches Formular.

PHP:
<form action="farbname.php" method="post">
spielername: <input type="text" name="spielername" /><br />
weltname: <input type="text" name="weltname" /><br />
<input type="Submit" value="Absenden" />
</form>

PHP:
<?php
$spielername= $_POST["spielername"];
$weltname= $_POST["weltname"];

echo  "$spielername $weltname";
?>

Das Ding funktioniert auch. Ich möchte jedoch gerne $spielername und $weltname HTML mäßig formatieren.
Sprich da soll z.B so was inkl. HTML Tags als Text(!) raus kommen.
Code:
<font color=red><b>S</b>pielernam<i>e</i></font>

Ich habe schon mit .= rumgespielt. Aber damit hänge ich ja bloß was an.
Ich muss ja auch an das nullte Zeichen vom String usw. und die HTML Codes anhängen. Die Funktion str_replace habe ich auch ausprobiert. Aber das ist glaube ich nicht das, was ich suche.

Gibt es eine spezielle String Funktion hierfür? Und wie gebe ich den Code aus, ohne das der HTML Code vom Browser interpretiert wird? Ich möchte zum Schluß einfach den Namen inkl. HTML Tags raus kopieren können.
 
Um HTML Code 1:1 auszugeben gibt's in PHP die Funktion htmlspecialchars() die das notwendige Escaping macht. Für das andere Vorhaben würd ich nach ner String-Funktion suchen die Formatierung erlaubt. Weiß jetzt nicht genau wie sie bei PHP heißt (in C# ist es String.Format), aber da gibt es sicher auch eine Funktion die es erlaubt in einen Vorgegebenen Text per Platzhalter Einsetzungen zu machen.
 
Entweder du echost die HTML Tags komplett (also alles samt den font Tags) oder du schreibst einfaches HTML und echost nur da, wo der Inhalt aus PHP stehen soll (also nur zwischen den font Tags).

Was Jesterfox meint ist vermutlich printf.
 
PHP:
<font color="red">
mit anführungszeichen, die du escape-n muss...

PHP:
<?php

 $html = '<div class="HelloWorld">Hello World</div>';

echo $html;
?>

es ist besser mit classen in css zu arbeiten als mit inline css...
und beachte ' und " Zeichen in php...
 
Zuletzt bearbeitet:
Code:
<?php
$spielername= $_POST["spielername"];
$weltname= $_POST["weltname"];
 
echo  "<font color=\"red\"><b>" . substr($spielername, 0, 1) . "</b>" . substr($spielername, 1, 9) . "<i>" . substr($spielername, 10, 1) . "</i></font>";
?>

Nicht getestet, sollte aber funktionieren.

Lerne, auch das PHP Handbuch und google zu benutzen. :)


http://php.net/manual/de/function.substr.php
http://php.net/manual/de/ref.strings.php

Edit: Alternativ, evtl. etwas übersichtlicher, ist aber erstmal Geschmackssache:

Code:
<?php
$spielername= $_POST["spielername"];
$weltname= $_POST["weltname"];
 
$anfang = substr($spielername, 0, 1);
$mitte = substr($spielername, 1, 9);
$ende = substr($spielername, 10, 1);

echo  "<font color=\"red\"><b>" . $anfang . "</b>" . $mitte. "<i>" . $ende . "</i></font>";
?>
 
Zuletzt bearbeitet:
Werde mal den Code von Drexel verwenden um weiter zu machen :evillol:
Also um HTML auszugeben, welches nicht vom Browser interpretiert werden soll, musst du das ganze in <pre> Tags einfassen. Ich würde das so machen:
Code:
<?php
    $spielername= $_POST["spielername"];
    $weltname= $_POST["weltname"];
?>
<pre><font color=\"red\"><b>
<?php echo substr($spielername, 0, 1); ?>
</b>     
<?php echo substr($spielername, 1, 9); ?> 
<i> 
<?php echo substr($spielername, 10, 1); ?> 
</i></font></pre>;

Wollte nur noch mal zeigen, dass man auch reguläres HTML schreiben kann, und zwischendrin php-Blöcke definieren kann wo dann der von php generierte Content eingesetzt wird.
 
Danke ihr habt mir sehr geholfen. Ich finde momentan die unzähligen Funktionen, die PHP bietet noch sehr unübersichtlich. Es stellt für mich momentan noch eine große Herausforderung dar, die passende zu finden.

Das ihr mir gleich den Code liefert, war nicht mal gefordert. Aber trotzdem danke. Ich finde man muss das selbst zusammen basteln. Anders lerne ich es leider nicht.

Mal was anderes, für das sich kein extra Thread lohnen würde:
Ich habe XAMPP bei mir lokal installiert. Wenn ich in einer HTML Datei PHP klassisch aufrufe, wird der Code nicht ausgeführt. Erst wenn ich die Datei als reine .php abspeichre. Klar ich könnte mit inline usw. arbeiten. Das möchte ich aber zum testen erstmal nicht. Wie bekomme ich trotzdem folgenden simplen PHP zum laufen, in einer .html Datei mit XAMPP ?

Code:
<html>
    <head>
        <title>My First PHP Page</title>
    </head>
    <body>
        1337
    <?php   
        echo "Hello World!";
    ?>
    </body>
</html>
 
Zuletzt bearbeitet: (Orthografie)
In der Apache Config Datei kannst Du einstellen, welche Dateiendungen an den PHP Parser weitergegeben werden, das konkrete Setting weiß ich aber gerade aus dem Kopf nicht....
 
wenn du schon php ausgaben im html code machst dann nutz wenigstens php shorttags.. das mit dem echo sieht so häßlich aus..

PHP:
<?= 'Hallo Welt' ?>

geht auch und sollte in dem fall auch verwendet werden
 
Wenn Du "das" (Entwicklung / Programmieren) lernen möchtest, was ich sehr lobenswert finde, dann schau Dir bitte auch unbedingt mal an, was "Cross Site Scripting" ist, was Du davon in Deinem Code und den ganzen Beispielen hier davon wiederfindest, wie man es vermeiden kann, was "Anti-Pattern" sind und warum es Prinzipien wie "don't trust anything" oder "don't trust user input" gibt - und warum sich gerade PHP damit so schwer tut.

Viel Erfolg
 
Deadmanshand schrieb:
Wenn ich in einer HTML Datei PHP klassisch aufrufe, wird der Code nicht ausgeführt. Erst wenn ich die Datei als reine .php abspeichre. Klar ich könnte mit inline usw. arbeiten. Das möchte ich aber zum testen erstmal nicht. Wie bekomme ich trotzdem folgenden simplen PHP zum laufen, in einer .html Datei mit XAMPP ?
Warum nicht als .php Datei speichern? Prinzipiell sagt die Dateiendung nur dem Webserver, dass er bei .php-Dateien erst den PHP-Interpreter ansprechen muss, bevor er das interpretierte PHP als HTML ausliefert.
 
Oh Mann hier lernt jemand seit gestern Programmieren offensichtlich und hier wird von HTML5, CSS, XSS gelabert was ihm wahrscheinlich im Moment 0 weiterbringt, wenn er noch nichtmal durch String Funktionen und die Doku durchblickt... Lässt ihn doch erstmal im Programmieren an sich ankommen.
 
Nerdovic schrieb:
Warum nicht als .php Datei speichern? Prinzipiell sagt die Dateiendung nur dem Webserver, dass er bei .php-Dateien erst den PHP-Interpreter ansprechen muss, bevor er das interpretierte PHP als HTML ausliefert.
Ok dann lasse ich es so wie es ist, wenn es keine weiteren Nachteile mit sich bringt.

Es funktioniert übrigens keine der geposteten Lösungen. Bei allen Varianten parst der Browser trotzdem die HTML tags, auch mit <pre> Tag.
 
Du musst de HTML Code auch per echo ausgeben und vorher mit htmlspecialchars behandeln:

<?php
$neu = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $neu; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Siehe http://php.net/manual/de/function.htmlspecialchars.php
 
Jesterfox schrieb:
Du musst de HTML Code auch per echo ausgeben und vorher mit htmlspecialchars behandeln:

Danke jetzt passt es.
Werde das Skript noch um eine Farbauswahl versuchen zu erweitern, sodass man im Vorfeld auswählen kann welche Farbe man möchte. Ideen für weitere Spielereien habe ich genug :)

Von meiner Vision ein eigenes Wordpress Theme zu erstellen, bin ich noch weit entfernt.
 
Zurück
Oben