
HTML till PHP: echo, heredoc, nowdoc och att lämna PHP
Klistra in färdig uppmärkning så får du fem sätt att lägga in den i en PHP-fil, vart och ett med rätt escaping. Allt körs i din webbläsare: uppmärkningen skickas ingenstans och sparas inte någonstans.
.html här — filen läses lokalt.
Det som ligger närmast det codebeautify ger, men med escaping: utan den bryter varje apostrof i uppmärkningen PHP-strängen.
Klistra in HTML ovan — PHP-koden visas här.
Klistra in HTML ovan — PHP-koden visas här.
Klistra in HTML ovan — PHP-koden visas här.
Klistra in HTML ovan — PHP-koden visas här.
Klistra in HTML ovan — PHP-koden visas här.
Uppmärkningen lämnar aldrig din webbläsare — konverteringen körs lokalt, utan att något skickas till en server.
Fem sätt och när vart och ett passar
echo rad för rad — rad efter rad, var och en i sitt eget anrop. Den mest välbekanta formen, praktisk när ett villkor eller en slinga ska in mellan raderna. nowdoc — ett block där PHP inte tolkar någonting: varken escape-sekvenser eller variabler. Uppmärkningen hamnar i koden byte för byte och behöver ingen escaping alls. Det är det säkraste sättet att flytta någon annans HTML. heredoc — samma block men med variabler: $title där inne blir ersatt. Därför escapas dollartecknet och omvänt snedstreck, men inte citattecknen. Sträng i en variabel — uppmärkningen samlas i $html genom sammanfogning. Behövs när den ska returneras från en funktion eller skickas till en mallmotor i stället för att skrivas ut direkt. Lämna PHP — stäng taggen och lämna över uppmärkningen som den är. Det är precis vad PHP:s dokumentation rekommenderar: ingen escaping, ingen kostnad för att limma ihop strängar, och redigerarens syntaxfärgning fortsätter att fungera. Den avslutande taggen ?> saknas medvetet i den genererade koden. Varje tecken efter den — även en oavsiktlig radbrytning i slutet av filen — hamnar i utdata och ger det klassiska «headers already sent».
Varför konverterare utan escaping ger kod som inte går att köra
Den mest spridda konverteraren från HTML till PHP gör exakt en sak: den klipper texten i rader och limmar ihop echo '<rad>';. Någon teckenersättning finns inte alls, och det syns redan på det första riktiga stycket uppmärkning. Ett attribut inom enkla citattecken — <a href='/price'> — stänger PHP-strängen mitt i texten. Sedan följer ett syntaxfel. Ett omvänt snedstreck i slutet av raden sväljer det avslutande citattecknet och limmar ihop två rader till en. Ett dollartecken inom dubbla citattecken eller i en heredoc gör $total till ett tomt värde. trim() på varje rad klipper i tysthet bort indraget inuti pre, textarea och code — det besökaren ser på sidan ändras. Alla rader limmas ihop utan brytningar, så den resulterande HTML-en blir en enda oändlig rad. Här är vart och ett av dessa fall hanterat, och heredoc-etiketten väljs så att den inte sammanfaller med någon rad i din uppmärkning: annars skulle blocket stängas mitt i.
