några sidor på nätet om PHP programmering

Sök efter  
Börja här Uppgifter Testa dig själv Tips Sidokarta mm. Länkar Sök

Vanliga HTML inriktade Regexp Regexp i PHP Övriga

1.9.2 HTML inriktade

htmlentities och htmlspecialchars

Används för att se till att en HTML text inte tolkas som HTML, utan istället för t.ex. < sätts det in &lt;. htmlentities konverterar allt, medan htmlspecialchars bara kodar &, ", < och >

<?php
    $texten
= "En text med &, \", < <b>bold</b> och <br>";

    
# texten okonverterad
    
echo    $texten;

    echo
"<br>";

    
# texten konverterad
    
echo htmlentities($texten);

    echo
"<br>";

    
# eftersom browsern kommer att visa &amp; som &
    # så kör jag konverteringen två gånger
    # för att får se det "riktiga" resultatet
    # i browsern

    # texten konverterad
    
echo htmlentities(htmlentities($texten));


?>
Listning 1.9.2.1 - samples/s77.php

En text med &, ", < bold och

En text med &, ", < <b>bold</b> och <br>
En text med &amp;, &quot;, &lt; &lt;b&gt;bold&lt;/b&gt; och &lt;br&gt;
Resultat av listning 1.9.2.1

strip_tags

En funktion besläktad med htmlentities är strip_tags, men istället för att konvertera html koden så tas den bort helt och hållet:

<?php
    $texten
= "<b>bold</b>, en break <br>
        och lite <font face=\"arial\">font</font>"
;

    
# texten okonverterad
    
echo    $texten;

    echo
"<br>";

    
# texten konverterad
    
echo strip_tags($texten);

    echo
"<br>";

    
# för att verkligen visa att alla tags är borta så
    # provar jag htmlentities
    
echo htmlentities(htmlentities(strip_tags($texten)));

?>
Listning 1.9.2.2 - samples/s78.php

bold, en break
och lite font
bold, en break och lite font
bold, en break och lite font
Resultat av listning 1.9.2.2

nl2br

Byter ut radbyten till ktml-koden <br>

<?php
    
# \n är PHP:s sätta att sätta radbyten
    
$texten = "rad 1\nrad2\nrad3";

    
# texten okonverterad
    
echo    "Orginal: $texten";

    echo
"<br>";

    
# texten konverterad
    
echo "Konverterad: " . nl2br($texten);

    echo
"<br>";

    
# för att visa vad som hänt så konverterar
    # jag medhtmlentities
    
echo "Resultat: " . htmlentities(nl2br($texten));
?>
Listning 1.9.2.3 - samples/s79.php

Orginal: rad 1 rad2 rad3
Konverterad: rad 1
rad2
rad3
Resultat: rad 1<br /> rad2<br /> rad3
Resultat av listning 1.9.2.3

urlencode och rawurlencode

Ser till att datat går att sända via en URL. Används när du vill sätta data till adressraden. urlencode fungerar bara med text, medan rawurlencode även fungerar med binärt data. Motsatserna heter urldecode och rawurldecode.

<?php
    
# en text som innehåller tecken som
    # har speciell betydels i URL:s
    
$texten = "Är du färdig & redo?";

    
# texten okonverterad
    
echo    "Orginal: " . htmlentities($texten);

    echo
"<br>";

    
# texten konverterad
    
echo "Konverterad: " . urlencode($texten);
    

    
# Exemmpel. Observera att vissqa browser kan konvertera
    # automatiskt, medan andra inte gör det
    # ta en till på adressdaden i browsern
    
echo "<br>";
    echo
"<a href=\"strings_conv.php?texten=" .
            
$texten .
            
"&extra=JA#urlencode\">Okonverterad</a>";

    echo
"<br>";
    echo
"<a href=\"strings_conv.php?texten=" .
            
urlencode($texten) .
            
"&extra=JA#urlencode\">Konverterad</a>";
    echo
"<br>";

    
# en "ofarlig" text som inte innehåller specialtecken som
    # har speciell betydels i URL:s
    
$texten = "allOk";

    
# texten okonverterad
    
echo    "Orginal: $texten";

    echo
"<br>";

    
# texten konverterad
    
echo "Konverterad: " . urlencode($texten);

    
# visa värdena som sändes
    
if (isset($_GET["texten"]))
    {
        echo
"<br>";
        echo
"texten = " . $_GET["texten"] . "<br>";
        echo
"extra = " . isset($_GET["extra"]) ? $_GET["extra"] : "" . "<br>";
    }
?>
Listning 1.9.2.4 - samples/s80.php

Orginal: Är du färdig & redo?
Konverterad: %C4r+du+f%E4rdig+%26+redo%3F
Okonverterad
Konverterad
Orginal: allOk
Konverterad: allOk
Resultat av listning 1.9.2.4

   Börja härSträngarHTML inriktade