Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit str_replace und array [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit str_replace und array


 
Maranello-550
23-05-2003, 00:10 
 
Nabend Leute,

Ich habe folgenden Code:

$words = file("wortliste.txt");
$awords = explode("|",$words);
$bwords = implode("', ' ",$awords);
$reihe = array("$bwords");
$kkt = str_replace($reihe,"####",$kt);
echo $kkt;


wortliste.txt sieht dann so aus:
ab|aber|abgesehen|alle|allein|aller|alles|als|also|am|an|andere|anderen|anderenfalls|

$kt wird aus einer datenbank geholt und ist natürlich ein text.

Ich hab schon einiges versucht. wenn ich die wörter manuell in das array schreibe klappts, aber sonst nicht.
und ich weiß einfach nicht warum.

ich hoffe ihr könnt mir helfen :)

 
Abraxax
23-05-2003, 00:55 
 
ungetestet
$words = file("wortliste.txt");
$awords = explode("|",$words);
$bwords = array();
for($i=0;$i<count($words);$i++)
$bwords[] = "####";
$kkt = str_replace($awords, $bwords, $kt);
echo $kkt;

 
TBT
23-05-2003, 07:42 
 
hatten wir schon oft

$text = preg_replace("#(" . implode("|", $words) . ")#ise",
"substr('\\1',0,1).str_repeat('*',strlen('\\1')-1)",
$text);


macht aus "Wort" ein "W***"

 
Maranello-550
23-05-2003, 13:18 
 
Der Code von TBT funktioniert.
Ich wollte aber alle Wörter, die in der wortliste vorkommen aus dem Text herausfiltern und nicht durch "*" ersetzen, sondern einfach rausstreichen. Zudem werden aus wörtern wie "abwaschen" "a*waschen", da das wort "ab" in der liste steht - was nicht passieren sollte.

Mein eigentliches ziel war es aus einem eingegebenen text die keywords automatisch zu erstellen. bei langen texten aus einer langen datenbank würde dies eine suchefunktion erleichter bzw. verschnellern.

Ich versteh auch nicht, was an meinem anfänglichen Code falsch war :rolleyes:
oder bin ich bei meinem vorhaben mit dieser methode auf dem holzweg?
:)

 
wahsaga
23-05-2003, 23:45 
 
Original geschrieben von Maranello-550
Ich versteh auch nicht, was an meinem anfänglichen Code falsch war :rolleyes:
hast du dir das array $reihe mal ausgeben lassen?

ich bezweifle, dass
$reihe = array("$bwords");
funktioniert...

 
Maranello-550
24-05-2003, 13:10 
 
Also foreach() ?!?

Und wie kann ic das da anwenden?
Ich habe mir das schon im Manual angesehen, konnte aber nicht wirklich was funktionierendes bauen...

 
Abraxax
25-05-2003, 21:15 
 
:goth: hast du nicht oben zwei beispiele bekommen? eines von TBT und eines von mir? warum willst du das rad jetzt neu erfinden?

 
TobiaZ
25-05-2003, 21:21 
 
foreach ist wohl n bisschen aufwändig: print_r() reicht!

 
Maranello-550
25-05-2003, 23:18 
 
hab es jetzt einfach direkt ins array geschrieben.

(warum kompliziert, wenn es auch einfach geht ;) )

danke euch für eure hilfe.


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:35 Uhr.