PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Wort mehrmals im String suchen (http://www.selfphp.de/forum/showthread.php?t=14875)

rsciw 17.10.2006 19:19:42

Wort mehrmals im String suchen
 
Heyas,

bastel gerad an einer Suchfunktion, die einen String nach bestimmten vom User eingebene Keywords durchsucht. User gibt woerter ein, getrennt durch ein ",", String wird dann mit explode in array gewandelt und soll dann jedes einzelne wort im Suchtext durchsuchen.

z.Z. jedoch bastel ich an der Suchfunktion an sich, also wird noch nichs uebergeben, setz ich im Code fest, jedoch komm ich mit der Suche an sich nicht weiter...

Nutze dafuer
"preg_match_all", da dieses den ganzen String durchsucht, auch wenn das gesuchte schon vorkam, jedoch scheints mir als ob man fuer search pattern keine variablen nutzen kann?

so schauts aus

PHP-Code:

$string "This,is,a,test,STRING,for,stuff"//Suchworte

$string2 "STRING,hallo,string,HALLO,StRiNg,hAlLo"//zu durchsuchen

$string strtolower($string);
$string2 strtolower($string2);

$exstring explode(",",$string);

echo 
"<br/>";
$co count($exstring);


for (
$i=0;$i<$co;$i++)
{
    
preg_match_all('/$exstring[$i]/',$string2,$output2PREG_PATTERN_ORDER);
}

echo 
count($output2)."<br/>";
print_r(array_values($output2));
echo 
"<br/>";
print_r(array_values($output2[0])); 

ausgegeben wird

Code:

1
Array ( [0] => Array ( ) )
Array ( )

also ein leeres Array in einem anderen Array.

jedoch muesste
"exstring[4]" (was "string" beinhaltet")
doch drei Treffer finden, oder nich?

Bin fuer jeden Tip dankbar :)

MatMel 17.10.2006 20:04:59

AW: Wort mehrmals im String suchen
 
Ich glaub man kann grundsätzlich in Hochkommata keine Variablen benutzen. Das geht nur in Anführungszeichen.
Mach doch einfach '/' . $exstring[$i] . '/' draus!

feuervogel 17.10.2006 20:19:25

AW: Wort mehrmals im String suchen
 
wie wärs mit

PHP-Code:

"/{$exstring[$i]}/" 

allerdings verstehe ich nicht ganz, wieso du eine preg_match funktion benutzt...

rsciw 18.10.2006 11:11:17

AW: Wort mehrmals im String suchen
 
ist die einzige funktion die ich gefunden hab die einen suchstring/wort in einem text mehrmals findet, alle anderen hoeren nach dem ersten Fund auf.

Oder hab ich eins uebersehn? :)

daFloh 18.10.2006 11:15:17

AW: Wort mehrmals im String suchen
 
Schon mal mit einer while-Schleife probiert?
Oder wenn Du nur die Anzahl der Vorkommen wissen möchtest versuch doch mal substr_count()

rsciw 18.10.2006 12:18:15

AW: Wort mehrmals im String suchen
 
hm krass
substr_count wohl uebersehn
und weitaus einfacher :)

also naextes mal:
Augen auf beim Eierkauf

thx :)

feuervogel 18.10.2006 12:25:03

AW: Wort mehrmals im String suchen
 
Zitat:

Zitat von rsciw (Beitrag 90304)
ist die einzige funktion die ich gefunden hab die einen suchstring/wort in einem text mehrmals findet, alle anderen hoeren nach dem ersten Fund auf.

Oder hab ich eins uebersehn? :)

und wieso willst du sie mehrmals finden? es ist doch (für eine suche) völlig egal, ob ein wort 1, 10 oder 100 mal in einem text vorkommt...zudem du in deinem beispiel etwas eventuell nicht ganz richtig machst: in $output2 stehen nur die ergebnisse des letzten elements von $extring.

rsciw 18.10.2006 14:28:16

AW: Wort mehrmals im String suchen
 
hab ich auch jesacht, aber soll dennoch so gemacht werden *schulter zuck*
naja, u.a fuer eine statistik welches wort wie oft vorkommt, wo man was optimieren (fuer Beschreibungen etc (was die Such durchsucht)) kann und weiss der Geier was.

bzgl. $output2, hab ich auch heut morgen bemerkt dass es falsch angezeigt wurde, nutze aber nun substr_count(), weils wesentlich einfacher ist und das gleiche liefert was ich brauch :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:38:19 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.