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 <.
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 & 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 &, ", < <b>bold</b> och <br> 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 OkonverteradKonverteradOrginal: allOk Konverterad: allOk Resultat av listning 1.9.2.4
|