Ist das mit PHP möglich

son gohan

Erfahrenes Mitglied
Hallo,

ein Wort und ich will am Ende des Wortes etwas ersetzen, ein Stück Text.

Die Funktion ereg_replace funktioniert nicht, weil ich den Text am Ende des Wortes ersetzen will und am Ende des Wortes aber nichts ist was die Funktion vergleichen könnte um es durch das den Text zu ersetzen. So läuft die Funktion ja normalerweise dursucht Zeichenkette nach Suchmuster und ersetzt durch Ersatz, ich habe aber nur das Wort als Zeichenkette und Ersatz als Text, doch wie bekomme ich das ende vom Wort als Suhmuster hin.

Würde das irgendwie machbar sein?
 
nenn am besten mal ein beispiel. aber sicher wird dies möglich sein mit php. man könnte doch einfach mit substr() einen teil des wortes (also dein letzten teil) auslesen und dann durch str_replace oder so jagen :)
 
Hallo,

hier mal mein Beispiel was ich mir so vorgestellt habe:

<?php
$handle = fopen ("test.csv","r");

while (!feof($handle)) {
$buffer = fgets($handle);


echo ereg_replace ("ende vom Wort", "text" , $buffer)."<br>";

}
fclose ($handle);
?>

In der test.csv sind die Wörter mal zwei oder dreiteilig, also das mein ich jetzt damit, Werner Gerhards oder Hans Werner Gerhards.

Ja und am Ende vom letzen Wort will ich ein bestimmten Text einfügen mit PHP, hoffe man versteht was ich meine, wenn nicht sagt es mir bitte damit ich genauer erkläre.
 
Edit ... Ach so ist doch alles falsch verstanden ... Argh :D
Hm naja, keine Ahnung, was du genau machen willst.
Hoffe, dass ich's jetzt geblickt hab ...

Wenn du das letzte Wort haben willst, nimm doch explode() und davon eben das letzte Element des Arrays (end()) und dann kannst du da dein replace-Zeug machen
 
Zuletzt bearbeitet:
Hab mein Script mal etwas geändert, sieht jetzt so aus:
PHP:
<?php
$handle = fopen ("test.csv","r");

while (!feof($handle)) {
    $buffer = fgets($handle);

    $teile = explode(" ", $buffer);
    $teile = end($buffer);

    echo  str_replace (" ","text" , $teile[0])."<br>";

}
fclose ($handle);
?>

Es gibt zwar keine Fehlermeldung raus, aber ersetzen tut es auch nichts ?

Die test.csv sieht so aus:

+-------------------------------------+
Hans Günther
Max Schmeling
Joe Luis der braune Bommber
+--------------------------------------+

Also nur eine Spalte mit den Wörtern, und ich will jetzt am Ende der Wörter mein "Text" ersetzen mit PHP. So. z.B. Hans Günther Text.
 
Zuletzt bearbeitet:
Also ich glaub ich habs verstanden... aber woher soll der compiler wissen ob dein wort 2 oder 3 teilig ist?
Oder ist eine zeile ein wort?

Y05h1
 
Du hast die Funktion end() glaub ich nicht richtig angewendet.
$teile = end($buffer);
müsste
$teile = end($teile);
heißen, oder?
Sonst hast du ja nicht das letzte Element von $teile

Edit:
Y05h1 hat gesagt.:
Also ich glaub ich habs verstanden... aber woher soll der compiler wissen ob dein wort 2 oder 3 teilig ist?
Oder ist eine zeile ein wort?

Y05h1
Dadurch, dass er alle Wörter abtrennt (mit leerzeichen) und dann das letzte nimmt, geht das.

Edit2:
Ich seh grad, dass es auch keinen Sinn macht, in einem String, wo keine Leerzeichen drinnen sein KÖNNEN, nach Leerzeichen zu suchen ...
Also kann da ja auch nicht's ersetzt werden
 
Zuletzt bearbeitet:
Hi Irgendjemand_1, ich glaub du hast recht mit dem setzen des end() müsste doch so sein $teile = end($teile);

Ich seh grad, dass es auch keinen Sinn macht, in einem String, wo keine Leerzeichen drinnen sein KÖNNEN, nach Leerzeichen zu suchen ...
Also kann da ja auch nicht's ersetzt werden

Ja und wegen dem ersetzen habe ich ja auch anfangs schon gedacht wie man das nur machen sol, wenn ja keine Leerzeichen da sind kann man ja auch nicht danach suchen um sie zu ersetzen :confused:
 
Zurück