Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
$var1 = Hallo;
ein wenig code(....)
$var1 = H a l l o;
$var = Hallo;
echo "Das<b>".$var."</b>ist fett"
<?php
function change($text, $b)
{
$l = strlen($text);
$a = array();
for($i=0; $i<$l; $i++)
{
$a[] = $text{$i};
}
return implode($a, $b);
}
echo change('Hallo', ' ');
?>
function change($text, $b)
{
$a = str_split($text,1);
return implode($a, $b);
}
function do_format($array) {
// Übergebenes Array durchlaufen
foreach($array as $v) {
$r[] = "#($v)#i";
}
return $r;
}
// String mit fett zu schreibenden Wörtern
$str = "Wie gehts denn so? Hallo!";
// Fette Wörter
$worter = array("Hallo","Wie");
// Der RegExp Syntax anpassen
$worter = do_format($worter);
// Alle Wörter $worter im String $str fett ausgeben
echo preg_replace($worter,"<strong>$1</strong>",$str);
du kleiner html freak man macht text nicht mit einem B Tag fett sondern mit dem STRONG tag ^^
<strong> zeichnet einen Text aus mit der Bedeutung "stark betont" (Steigerung von "em")
<b> zeichnet einen Text als fett aus
echo preg_replace($worter,"<strong>$1</strong>",$str);[/php]Habs jetzt sehr ausführlich geschrieben. Kann man noch kürzen.
Gruß
Voodoo
#(wort)#i
Gut, ich glaube so einigermaßen habe ich es verstanden.Also...
Die Funktion preg_replace benutzt sogenannte Reguläre Ausdrücke.
Die Syntax kann hierbei auch relativ komplex werden.
Der Suchpattern war bei der Funktion oben folgender:
# ist ein Begrenzer, der den eigentlichen Pattern von den Modifiern wie z.B i abtrennt.Code:#(wort)#i
Dieser Modifier besagt einfach, dass Groß- und Kleinschreibung keine Beachtung geschenkt werden soll.
In den Klammern steht der Ausdruck, der am Ende zur weiteren Verwendung gespeichert werden soll. In unserem Fall in $1. Enthielte der Pattern weitere Klammern, ginge auch die Nummerierung weiter.
Im zweiten Parameter wird dann einfach $1 durch den gefundenen Ausdruck ersetzt.
Ich hoffe das war halbwegs verständlich.
Weiter Informationen gibts bei Websiteentwicklung: PHP: Reguläre Ausdrücke - Wikibooks
#($v)#i
@ Slibbo
Wäre wahrscheinlich auch kürzer gegangen: ;)
function whitespace(&$string) {
$string = implode(" ", explode("", $string));
}
function strongen(&$string,$pattern) {
$string = preg_replace("/".preg_quote($pattern,"/")."/is","<strong>".$pattern."</strong>",$string);
}
Also muss man gezwungener Maßen auf str_split oder eine Schleife zurückgreifen.Ist delimiter ein leerer String (""), so gibt explode() FALSE zurück
$string = "Test Text soll gesplittet werden";
# So solls dann nachher sein:
$string = array("Test", "Text", "soll", "gesplittet", "werden");
<?php
$suche = $_POST['suche'];
if($suche == "Suche...") echo "Sie müssen etwas eingeben zum Suchen!";
elseif(empty($suche)) {
#nix
}
elseif(strlen($suche) <= 3) echo "Zu kurzer Suchbegriff!";
elseif(!empty($suche)) {
echo "<h2>Suchergebnisse zu: <span style='color:#333333;'>$suche</span></h2><br><br>";
$suche = str_replace(" ", "%", trim($suche, " "));
$result = mysql_query("SELECT * FROM suche WHERE titel LIKE '%".$suche."%' OR beschreibung LIKE '%".$suche."%' ORDER BY klicks DESC") or die(mysql_error());
while($ds = mysql_fetch_object($result)) {
$beschreibung = $ds->beschreibung;
$titel = $ds->titel;
$link_ = $ds->link_;
$klicks = $ds->klicks;
function do_format($array) {
foreach($array as $v) {
$r[] = "#($v)#i";
}
return $r;
}
$l = do_format(explode(" ", str_replace("%", " ", $suche), 1000000000000));
$beschreibung = preg_replace($l,"<strong>$1</strong>",$beschreibung);
?>
<a href="<?="http://".$link_?>" style="font-weight:bold;"><?=$titel?></a>
<p><?=$beschreibung?></p>
<i style="font-size:9px;"><?=$link_?> - <?=$klicks?> K</i>
<br><br>
<?php
unset($beschreibung, $titel, $worter2, $worter);
}
}
else {
# Nix
}
?>
explode(' ', $satz);
einen satz kannst du mit ecplode(); an den leerzeichen trennen also
PHP:explode(' ', $satz);
<?php
$suche = $_POST['suche'];
// Die Variable $suche wird mit dem Suchwort definiert
if($suche == "Suche...")
echo "Sie müssen etwas eingeben zum Suchen!"; // Falls $suche = Suche... entspricht, Wird ausgegeben "Sie müssen etwas eingeben zum Suchen!"
elseif(empty($suche)) {
// Hier passiert nichts.
}
elseif(strlen($suche) <= 3)
echo "Zu kurzer Suchbegriff!"; // Falls $suche weniger als oder gleich 3 Zeichen hat, wird der Text ausgegeben.
elseif(!empty($suche)) {
//Hier wird nun Die Suche gestartet.
// echo gibt den Text aus.
echo "<h2>Suchergebnisse zu: <span style='color:#333333;'>$suche</span></h2><br><br>";
$suche = str_replace(" ", "%", trim($suche, " ")); // Die Leerzeichen in Suche werden mit % ausgetauscht. Das dient dazu, dass MYSQL die einzelnen Wörter sucht, und nicht im Zusammenhant. Das hat zur Folge, dass auch Sachen gefunden werden, wo die Wörter nicht hintereinander Stehen.
$result = mysql_query("SELECT * FROM suche WHERE titel LIKE '%".$suche."%' OR beschreibung LIKE '%".$suche."%' ORDER BY klicks DESC") or die(mysql_error()); // Die Suche in der Datenbank nach $suche
while($ds = mysql_fetch_object($result)) {
$beschreibung = $ds->beschreibung; // Die Beschreibung wird ausgelesen und Definiert
$titel = $ds->titel; // Der Titel wird ausgelesen und definiert
$link_ = $ds->link_; // Der link wird ausgelesen und definiert
$klicks = $ds->klicks; // Die Klicks werden ausgelesen und definiert
/* Der Nachfolgende Code verursacht den Fehler. Wenn ich ihn nämlich aukommentiere funktioniert alles wie es soll. */
function do_format($array) {
foreach($array as $v) {
$r[] = "#($v)#i";
}
return $r;
}
$l = do_format(explode(" ", str_replace("%", " ", $suche), 1000000000000));
$beschreibung = preg_replace($l,"<strong>$1</strong>",$beschreibung);
/* Hier ist der Fehlerhafte Code nun zu Ende. Dort müsste der Fehler liegen. */
/* Im Nachfolgenden Code geschieht die Ausgabe */
?>
<a href="<?="http://".$link_?>" style="font-weight:bold;"><?=$titel?></a>
<p><?=$beschreibung?></p>
<i style="font-size:9px;"><?=$link_?> - <?=$klicks?> K</i>
<br><br>
<?php
/* Hier ist die Ausgabe zuende */
unset($beschreibung, $titel, $worter2, $worter); // Hier werden die Variablen geleert
}
}
else {
// Nichts passiert
}
?>
<?php
function do_format($array) {
foreach($array as $v) {
$r[] = "#($v)#i";
}
return $r;
}
$suche = $_POST['suche'];
// Die Variable $suche wird mit dem Suchwort definiert
if($suche == "Suche...")
echo "Sie müssen etwas eingeben zum Suchen!"; // Falls $suche = Suche... entspricht, Wird ausgegeben "Sie müssen etwas eingeben zum Suchen!"
elseif(empty($suche)) {
// Hier passiert nichts.
}
elseif(strlen($suche) <= 3)
echo "Zu kurzer Suchbegriff!"; // Falls $suche weniger als oder gleich 3 Zeichen hat, wird der Text ausgegeben.
elseif(!empty($suche)) {
//Hier wird nun Die Suche gestartet.
// echo gibt den Text aus.
echo "<h2>Suchergebnisse zu: <span style='color:#333333;'>$suche</span></h2><br><br>";
$suche = str_replace(" ", "%", trim($suche, " ")); // Die Leerzeichen in Suche werden mit % ausgetauscht. Das dient dazu, dass MYSQL die einzelnen Wörter sucht, und nicht im Zusammenhant. Das hat zur Folge, dass auch Sachen gefunden werden, wo die Wörter nicht hintereinander Stehen.
$suchworte = do_format(explode(" ", str_replace("%", " ", $suche)));
$result = mysql_query("SELECT * FROM suche WHERE titel LIKE '%".$suche."%' OR beschreibung LIKE '%".$suche."%' ORDER BY klicks DESC") or die(mysql_error()); // Die Suche in der Datenbank nach $suche
while($ds = mysql_fetch_object($result)) {
$beschreibung = $ds->beschreibung; // Die Beschreibung wird ausgelesen und Definiert
$titel = $ds->titel; // Der Titel wird ausgelesen und definiert
$link_ = $ds->link_; // Der link wird ausgelesen und definiert
$klicks = $ds->klicks; // Die Klicks werden ausgelesen und definiert
// Suchwörter in der Beschreibung hervorheben
$beschreibung = preg_replace($suchworte,"<strong>$1</strong>",$beschreibung);
/* Im Nachfolgenden Code geschieht die Ausgabe */
?>
<a href="<?="http://".$link_?>" style="font-weight:bold;"><?=$titel?></a>
<p><?=$beschreibung?></p>
<i style="font-size:9px;"><?=$link_?> - <?=$klicks?> K</i>
<br><br>
<?php
/* Hier ist die Ausgabe zuende */
unset($beschreibung, $titel, $worter2, $worter); // Hier werden die Variablen geleert
}
}
else {
// Nichts passiert
}
?>