• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warnung

Status
Für weitere Antworten geschlossen.

MadMax777

Neues Mitglied
Meine Internetseite erzeugt diese Warnmeldung.

Code:
ereg_replace(): REG_EPAREN in /usr/export/www/vhosts/funnetwork/hosting/madmax777/gaestebuch1.php on line 96

Wer kann mir erklären was diese Warnung bedeutet.

mfg
madmax777
 
Werbung:
Prophet schrieb:
zeigst du uns mal die zelen 96 +- 10?

Ja natürlich.

[php:1:b541ad5a69]
<?php
$host = "localhost";
$passwort = "MadMax777";
$benutzername = "madmax777";
$datenbank = "madmax777";
$db = mysql_connect($host,$benutzername,$passwort);
mysql_select_db($datenbank,$db);
if (!$db) {
echo "Fehler: Es konnte leider keine Verbindung zum Gästebuch hergestellt werden!\n";
exit;
}
$sql = "select * from Gaestebuch where Name like '%$textfield2%' and EMail like '%$textfield%'";
if (!$Submit2 == "") {
$sql = $sql . " order by Name ASC";
}
if (!$Submit3 == "") {
$sql = $sql . " order by Datum DESC, Zeit DESC";
}
$ergebnis = mysql_query($sql,$db);
echo "<table width='100%' border='1' bgcolor='#CCCCCC'>\n";
while($row = mysql_fetch_object($ergebnis))
{
echo "<tr>\n";
echo "<td width='60'><font size ='2'>", $row->Name,"
";
echo "schrieb am ", $row->Datum;
if ($row->Zeigen == 1 && $row->EMail <> "") {
echo "
EMail, "' border='0'></font><font size ='3'>\n";
}
$text = $row->Text;
$sql_smiley = "select * from Smiley";
$ergebnis_smiley = mysql_query($sql_smiley,$db);
while($row_smiley = mysql_fetch_object($ergebnis_smiley))
{
$text = ereg_replace($row_smiley->Text,$row_smiley->Smiley,$text);
}
mysql_free_result($ergebnis_smiley);
echo "</td>\n";
echo "<td>
", $text, "</br></td>\n";
echo "</tr>\n";
}
echo "</table>\n";
echo "</font>\n";
mysql_free_result($ergebnis);
mysql_close($db);
?>
[/php:1:b541ad5a69]

Zeile 96 ist diese:

[php:1:b541ad5a69]<?php
$text = ereg_replace($row_smiley->Text,$row_smiley->Smiley,$text);
?>[/php:1:b541ad5a69]
 
Werbung:
arbeite doch anstatt mit mysql_fetch_object mit mysql_fetch_array. lass dir mit hilfe von var_dump das zurückgeliferte array anzeigen und guck ob es über haupt daten enthält...
 
Prophet schrieb:
arbeite doch anstatt mit mysql_fetch_object mit mysql_fetch_array. lass dir mit hilfe von var_dump das zurückgeliferte array anzeigen und guck ob es über haupt daten enthält...

Ich habe den Quell-Code entsprechend geändert.

[php:1:d197a49f92]<?php
$sql_smiley = "select Text, Smilies from Smiley";
$ergebnis_smiley = mysql_query($sql_smiley,$db);
var_dump($ergebnis_smiley);
while($row_smiley = mysql_fetch_array($ergebnis_smiley))
{
var_dump($row_smiley);
text = ereg_replace($row_smiley->Text,$row_smiley->Smilies,$text);
}
mysql_free_result($ergebnis_smiley);
?>[/php:1:d197a49f92]

Laut
Code:
var_dump ()
, sind auch Daten enthalten.

Aber dennoch kommt nun folgende Warnung:

Code:
Warning: ereg_replace(): REG_EMPTY in /usr/export/www/vhosts/funnetwork/hosting/madmax777/gaestebuch1.php on line 98

Diese Warnung will sagen das etwas leer ist bzw. sein könnte. Ist die Frage aber auf was sich das EMPTY bezieht, vielleicht auf die Datenmenge mit den Smilies die nicht leer ist oder auf den Text der durchsucht werden soll oder auf die Zeichenkette nach der gesucht werden soll.

Über hilfreiche Denkanstöße wäre ich dankbar.

mfg
madmax777
 
... du must nach der änderung natürlich auch die variablen als array und nicht alls objekt ansprechen...
 
Werbung:
MadMax777 schrieb:
Vielen Dank an alle das Problem ist gelöst. :-)

Oh, Sorry :-) Natürlich.

Da diese Abfrage

Code:
$sql_smiley = "select * from Smiley"; 
$ergebnis_smiley = mysql_query($sql_smiley,$db); 
while($row_smiley = mysql_fetch_object($ergebnis_smiley))

Datensätze zurückgeliefert hat, so wie es sein sollte, was ich dank

Code:
var_dump ()

herraus finden konnte. Kam die Theorie mit den leeren Datensatz nicht in frage. Aber die ganze Sache funktionierte immer noch nicht.

Bis ich in der Befehlszreferenz auf
Code:
str_replace()
gestoßen bin.

Und habe die Zeile

Code:
$text = ereg_replace($row_smiley->Text,$row_smiley->Smiley,$text);

durch diese ersetzt

Code:
$text = str_replace($row_smiley->Text,$row_smiley->Smilies,$text);

und seit dem Funktioniert es.

mfg
madmax777
 
Werbung:
Prophet schrieb:
dann wird es wohl an einem falshen regulärem ausdruck gelegen haben...

Man müsste mal schauen wo genau der unterschied zwischen
Code:
ereg_replace
und
Code:
str_replace
.

Ich Schau mal bei http://www.selfphp.de/ nach da hab ich den Befehl gefunden.

Erkärung für str_replace
Mit str_replace() kann man in einer Zeichenkette (haystack) nach allen Vorkommen des Strings needle suchen und durch einen anderen String (str) ersetzen lassen. Bei der Funktion werden auf Binär-Basis die Vorkommen des Strings gesucht. Einfache Ersetzungen sollten Sie immer mit dieser Funktion realisieren. Für ausgefallenere Ersetzungen bietet sich ereg_replace() an.

Erklärung für ereg_replace
Mit ereg_replace() kann man in einer Zeichenkette (Zeichenkette) nach einem Suchmuster (Suchmuster) suchen und dieses durch einen bestimmten Ausdruck (Ersatz) ersetzen lassen. Wird kein Suchtreffer gefunden, so wird der String ohne Änderungen zurückgegeben. Dabei unterscheidet die Funktion zwischen Groß-und Kleinschreibung (siehe letztes Beispiel). Wenn Sie für Ersatz eine Zahl (123.....) nutzen wollen, sollten Sie sie in einfache oder doppelte Hochkommas setzen, da die Funktion ereg_replace() die Zahl sonst als Ordinalwert eines Zeichens interpretiert (siehe Beispiele).

(Übernommen von www.selfphp.de)

Das Problem war das Zahlen 1, 2, 3 usw. bei ereg_replace in Hochkommas geschrieben werden müss. Und da ich auch nach Zahlen zum Teil gesucht habe, kam es bei ereg_replace zu Problemen.
 
dein problem war das du euberhaupt keinen regulären ausdruck benutzen wolltest und du somit mit ereg total vorbei geschliddert bist.
(abgesehen davon das man fuer regex jetzt lieber preg_* funktionen nutzen sollte)
str_replace ist sehr viel schneller und ich denke du hast die richtige wahl getroffen :wink:
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben