aktuelle.kurse/old_m133/Modul_Unterlagen_133_VOR/01-Modulinhalte/02 Grundlagen/03 PHP-einfach/einf_php_suchen_ersetzen.php.htm
Müller Harald 507e5da390 muh
2022-05-13 11:53:50 +02:00

334 lines
13 KiB
HTML

<html>
<head>
<title>PHP-Einfach.de - PHP Einf&uuml;hrung - Suchen und ersetzen</title>
<meta name="Author" content="Andavos">
<meta name="Publisher" content="Andavos">
<meta name="Copyright" content="Andavos">
<link rel="stylesheet" href="css/main.css" tppabs="http://www.php-einfach.de/offline/css/main.css" type="text/css">
</head>
<body text="#000000" bgcolor="#DDDDDD" link="#004A95" alink="#004A95" vlink="#525252">
<table align="center" height="100%" width="100%" cellspacing="0" border="0" cellpadding="0">
<tr>
<td align="center" valign="middle" height="100%" width="100%">
<table height="100" width="750" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" bgcolor="#FFE09F" width="750"><img src="grafiken/banner_top.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/banner_top.jpg" width="750" height="100" border="0" alt="">
<a name="oben"></a></td>
</tr>
</table>
<table height="650" width="750" cellspacing="0" border="0" cellpadding="0">
<tr>
<td valign="top" bgcolor="#FFE09F" width="160">
<table width="160" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="5"></td>
<td class="black" height="100" width="150">
<br><b><center><img src="grafiken/side_navigation.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_navigation.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" class="blue" href="http://www.php-einfach.de/index.php"><b>&raquo;</b> Startseite</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_news.php"><b>&raquo;</b> News&uuml;bersicht</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_email.php"><b>&raquo;</b> Kontakt</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_impressum.php"><b>&raquo;</b> Impressum</a><br><br>
<center><img src="grafiken/side_community.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_community.gif" width="150" height="25" border="0" alt=""></center>
<a target="_blank" class="blue" target="_blank" href="http://forum.php-einfach.de/"><b>&raquo;</b> Forum</a><br>
<a target="_blank" class="blue" href="http://www.php-einfach.de/nav_gaestebuch.php"><b>&raquo;</b> G&auml;stebuch</a><br><br>
<center><img src="grafiken/side_tutorials.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_tutorials.gif" width="150" height="25" border="0" alt=""></center>
<a class="blue" href="einf_php.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php.php"><b>&raquo;</b> Einf&uuml;hrung PHP</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_anfang.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_anfang.php"><b>&raquo;</b> Anfang</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_erste_schritte.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_erste_schritte.php"><b>&raquo;</b> Erste Schritte</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_variablen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_variablen.php"><b>&raquo;</b> Variablen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_if-anweisung.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_if-anweisung.php"><b>&raquo;</b> if-Anweisung</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_logische_operatoren.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_logische_operatoren.php"><b>&raquo;</b> Log. Operatoren</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_uebung1.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_uebung1.php"><b>&raquo;</b> &Uuml;bung</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_dateien.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien.php"><b>&raquo;</b> Dateien</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_schleifen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_schleifen.php"><b>&raquo;</b> Schleifen</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_array.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_array.php"><b>&raquo;</b> Array</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_dateien2.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_dateien2.php"><b>&raquo;</b> Dateien Teil 2</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_datum.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_datum.php"><b>&raquo;</b> Datum & Zeit</a><br>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_email.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_email.php"><b>&raquo;</b> Mail Funktion</a><br>
<div style="position: relative; left:15;" >
<a class="blue"href="einf_php_suchen_ersetzen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_suchen_ersetzen.php"><b>&raquo;</b> Suchen & Ersetzen</a><br>
<a class="blue" href="einf_php_nuetz_funktionen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_nuetz_funktionen.php"><b>&raquo;</b> N&uuml;tzliche Funktionen</a><br>
</div>
&nbsp;&nbsp;&nbsp;<a class="blue" href="einf_php_sessions.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_sessions.php"><b>&raquo;</b> Sessions</a><br><br>
<a class="blue" href="einf_mysql.php.htm" tppabs="http://www.php-einfach.de/offline/einf_mysql.php"><b>&raquo;</b> Einf&uuml;hrung MySQL</a><br>
<br>
<center>
<a target="_blank" href="http://www.php-einfach.de/nav_verlinkung.php"><img src="grafiken/php-einfach.gif" tppabs="http://www.php-einfach.de/offline/grafiken/php-einfach.gif" width="88" height="31" border="0" alt="PHP-Einfach.de"></a><br><br>
<a target="_blank" href="http://www.digicount.de/"><b>Counterdienst:</b></a>
<a target="_blank" href="http://www.php-einfach.de/nav_digicount.php"><div>
<img src="grafiken/digicount_livedemo.jpg" tppabs="http://www.php-einfach.de/offline/grafiken/digicount_livedemo.jpg" border="0" alt="Digicount.de"><br>
<small>Unser werbefreier Counter- und Statistikdienst</small></div>
</a>
</center>
</td>
<td height="100" width="5"></td>
</tr>
</table>
</td>
<td valign="top" bgcolor="#FFFFFF" width="430">
<table width="430" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="10"></td>
<td valign="top" class="black" height="100" width="410">
<br>
<h4>Suchen und ersetzen</h4>
Mit PHP kann man Texte auch durchsuchen lassen, und bestimmte Zeichen/W&ouml;rter durch einen anderen Text ersetzten lassen.<br><br>
Der einfachste Befehl daf&uuml;r lautet: <b>str_replace(<i>"Suchen", "Ersetzen", $variable</i>)</b>.<br><br>
Ein Beispiel:
<font color="#606060">
<pre>
&lt;?php
$text = "Dies ist ein kleines Beispiel";
$text = str_replace("ist", "war", $text);
echo $text;
?>
</pre>
</font>
Mit <b>str_replace</b> ersetzen wir <i>ist</i> durch <i>war</i> in der Variable <b>$text</b> und speichern dies wieder in der Variable <b>$text</b>.<br><br>
Wichtig zu wissen ist, dass <b>str_replace</b> zwischen Gro&szlig;- und Kleinschreibung unterscheidet. Manchmal m&ouml;chte man aber ein Wort ersetzen lassen, egal ob es gro&szlig;- bzw. klein geschrieben wurde.<br><br>
Daf&uuml;r gibt es den Befehl <b>eregi_replace</b>.<br>
Dieser Befehl baut sich genauso auf, wie <b>str_replace</b>.<br><br>
Ein Beispiel:
<font color="#606060">
<pre>
&lt;?php
$text = "Dies IsT ein kleines Beispiel";
$text = eregi_replace("ist", "war", $text);
echo $text;
?>
</pre>
</font>
Hier wird <i>IsT</i> durch <i>war</i> ersetzt. Mit <b>str_replace</b> w&uuml;rde da immer noch <i>IsT</i> stehen.<br><br>
Aber was ist wenn man <b>eregi_replace</b> Sonderzeichen (z.B. eckige Klammer) ersetzen m&ouml;chte?<br><br>
Ein Beispiel:
<font color="#606060">
<pre>
&lt;?php
$text = "Dies [Ist] ein kleines Beispiel";
$text = eregi_replace("[ist]", "war", $text);
echo $text;
?>
</pre>
</font>
Als Ausgabe erhalten wir einen komischen, nicht lesbaren Satz, weil eckigen Klammer in <b>eregi_replace</b> eine bestimmte Funktion hat.<br>
Daf&uuml;r m&uuml;ssen wir die Klammer wieder mit Backslash maskieren.
<font color="#606060">
<pre>
&lt;?php
$text = "Dies [Ist] ein kleines Beispiel";
$text = eregi_replace("\[ist\]", "war", $text);
echo $text;
?>
</pre>
</font>
Jetzt erhalten wir den richtigen Satz.<br><br>
<h3>\n zu &lt;br></h3>
PHP wandelt alle Zeilenumbr&uuml;che von einem Text, z.B. aus einem Formular, in <b>\n</b> um. Wenn man diesen Text sp&auml;ter wieder ausgibt, erhalten wir keine Zeilenumbr&uuml;che, weil HTML &lt;br> daf&uuml;r verwendet.<br>
Deswegen m&uuml;ssen wir mit PHP alle <b>\n</b> durch <b>&lt;br></b> ersetzen.<br><br>
Dies k&ouml;nnen wir mir <b>str_replace</b> machen.
<font color="#606060">
<pre>
&lt;?php
$text = "Dies Ist ein
kleines Beispiel";
echo $text; //Vor dem ersetzen
echo "&lt;br>";
$text = str_replace("\n", "&lt;br>", $text);
echo $text; //Nach dem ersetzen
?>
</pre>
</font>
Den selben Effekt w&uuml;rde auch dieses Beispiel erzielen:
<font color="#606060">
<pre>
&lt;?php
$text = "Dies Ist ein \n kleines Beispiel";
echo $text; //Vor dem ersetzen
echo "&lt;br>";
$text = str_replace("\n", "&lt;br>", $text);
echo $text; //Nach dem ersetzen
?>
</pre>
</font>
Man kann auch <b>nl2br($variable)</b> benutzen, dabei werden alle <b>\n</b> in <b>&lt;br /></b> umgewandelt.<br>
<font color="#606060">
<pre>
&lt;?php
$text = "Dies Ist ein
kleines Beispiel";
$text = nl2br($text);
echo $text;
?>
</pre>
</font>
Das <b>&lt;br /></b> ist auch f&uuml;r XHTML kompatibel.<br><br>
<h3>Anf&uuml;hrungszeichen</h3>
Wenn man in seinem Text Anf&uuml;hrungszeichen benutzt, und diesen Text mit PHP dann in einer Datei speichert, werden automatisch alle Anf&uuml;hrungszeichen mit einem Backslash (\) versehen.<br><br>
Wenn man diesen Text sp&auml;ter aus der Datei ausliest, stellt man fest, das dort immer noch die Backslash sind. Deswegen kann man alle <b>\"</b> durch <b>"</b> ersetzen.<br><br>
Dies geht mit dem PHP-Befehl: <b>$variable = stripslashes($variable);</b><br><br>
Ein Beispiel:<br>
Erstellen Sie die Datei <b>test.txt</b> und schreiben Sie in diese Datei einen Text, in dem ein paar <b>\"</b> vorkommen. <br><br>
<b>Warum macht man dies?</b><br>
Ganz einfach, weil PHP Anf&uuml;hrungszeichen maskiert, also wird aus <b>"</b> ein <b>\"</b>.<br><br>
Jetzt rufen wir mittels PHP die Datei auf.
<font color="#606060">
<pre>
&lt;?php
$lesen = implode("",file("test.txt"));
echo $lesen;
echo "&lt;br>";
$lesen = stripslashes($lesen);
echo $lesen;
?>
</pre>
</font>
<h3>Sonderzeichen und HTML-Tags</h3>
Wenn man den Besucher etwas in ein Formular eingeben l&auml;sst (z.B. bei G&auml;steb&uuml;chern), so kann er auch z.B. HTML-Befehle dort eingeben. Wenn man diesen Text dann ausgibt, so werden die HTML-Befehle ausgef&uuml;hrt. Dies ist besonders schlimm, wenn er den Befehl f&uuml;r eine automatische Weiterleitung eingibt, denn immer wenn man diesen Text aufruft, wird man auf eine andere Seite weitergeleitet.<br><br>
Deswegen k&ouml;nnen wir alle Sonderzeichen und HTML-Tags in den daf&uuml;r
vorgesehenen HTML-Code umwandeln.<br><br>
Dies bedeutet das aus &lt; ein &amp;lt; wird, aus &Ouml; wird &amp;Ouml;.<br><br>
Daf&uuml;r gibt es den Befehl <b>htmlentities($variable);</b>.<br><br>
Ein Beispiel:
<font color="#606060">
<pre>
&lt;?php
$text = "&lt;a href=\"index.php\">Index&lt;/a>";
$text = htmlentities($text);
echo $text;
?>
</pre>
</font>
Als Ausgabe erhalten wir <i>&lt;a href="index.php">Index&lt;/a></i><br><br>
Nat&uuml;rlich sind wir nicht gezwungen einen Text zu &uuml;berschreiben, wenn wir etwas ersetzten m&ouml;chten, wir k&ouml;nnen f&uuml;r den neuen Text auch andere Variablen benutzen, aber meisten m&ouml;chten man ja den ersetzten Text ausgeben, und so benutzen wir weniger Variablen Namen.<br><br>
Au&szlig;erdem sollten wir einen Text erst dann ersetzen lassen, wenn wir ihn ausgeben und nicht wenn wir ihn speichern.<br><br>
In PHP gibt es viele <a href="einf_php_nuetz_funktionen.php.htm" tppabs="http://www.php-einfach.de/offline/einf_php_nuetz_funktionen.php">n&uuml;tzliche Funktionen</a><br><br>
<a href="http://www.php-einfach.de/nav_impressum.php">Autor Andavos</a>
<div align="center"><a href="#oben">Nach oben</a></div>
</td>
<td height="100" width="10"></td>
</tr>
</table>
</td>
<td valign="top" bgcolor="#FFE09F" width="160">
<table width="160" cellspacing="0" border="0" cellpadding="0">
<tr>
<td height="100" width="5"></td>
<td valign="top" class="black2" height="100" width="150">
<br><b><center><img src="grafiken/side_news.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_news.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" href="http://www.php-einfach.de/nav_news.php">News</a>
<br><br>
<b><center><img src="grafiken/side_forum.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_forum.gif" width="150" height="25" border="0" alt=""></center></b>
<a target="_blank" href="http://forum.php-einfach.de/">Forum</a>
<br><br>
<b><center><img src="grafiken/side_newsletter.gif" tppabs="http://www.php-einfach.de/offline/grafiken/side_newsletter.gif" width="150" height="25" border="0" alt="Newsletter"></center></b>
<form target="_blank" method="post" action="http://www.php-einfach.de/clanletter/save.php">
<br> <br>
<div align="center">&copy; PHP-Einfach.de 2003 - 2007 </div>
</td>
<td height="100" width="5"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>