Skeyword (Strigng) in $treffer (Array) suchen

werwiewas29

Mitglied
Hallo Liebe Programmierer******

Ich suche nach einen Ratschlag:

mein Programm:
PHP:
<?php

	$url ="http://maplandia.com/"; // gibt in String zurück 
	$keyword = "Welcome";
    $content = file_get_contents('http://maplandia.com/');
	
	echo research6($url,$keyword,$content);
	
	
	
function research6($url,$keyword,$content){
#"/\[<H]{1}[1]{1}\w+\>\w+<\/[H]{1}[1]{1}>/iUs"
	$treffer = array();
	#print $content;
    #echo $_html; <TAG\b[^>]*>(.*?)</TAG>
	@preg_match_all("%<h1(.*)>(.*)</h1>%Uis",$content,$treffer);// \w = suche nach beliebigen Wort das enthalten ist. 
	#print $treffer[0]; //$matches[0] enthält dann den Text, der auf das komplette Suchmuster passt
	//test:
	#print $treffer[0]; // Inhalt Array
	
	print_r ($treffer);
	print "<br>";

	
	if (in_array($keyword,$treffer)) {
    echo "Irix enthalten";
}
else{ print "nO ";}
	
	
	
		} // function Ende
?>

was dabei nicht funktionier.. Die Suchen nach dem Kword im Array.. er sagt NO,, Obwohl es aber enthalten ist. entdecke leida keinen Fehler,,, :confused:
 
Machmal ein var_dump() anstelle des print_r() auf $treffer und poste das Resultat davon hier.
 
Ergebnis:
array(3) { [0]=> array(1) { [0]=> string(45) "
Welcome on maplandia.com!

" } [1]=> array(1) { [0]=> string(11) " class="tp"" } [2]=> array(1) { [0]=> string(25) "Welcome on maplandia.com!" } }
nO
 
Wie du siehst hast du keinen Eintrag der 'Welcome' lautet. Du hast ein Eitrag der das Wort beinhaltet, aber das ist nicht das gleiche.

PHP:
$foundTrix = false
foreach($treffer as $item){
    if(strstr($item, $keyword) !== false){
        $foundTrix = true
        break;
    }
}

if($foundTrix){
    //TODO: gefunden
}esle{
    //TODO nicht gefunden
}
 
JA genau.. das war mir noch nicht genau klar.. wie man dsa Keyword definiert.. ob er auch Teile erkennt oder nur d. Keyword genau identisch mit der H1
 
Jet bekomm ich ein True raus.. aber Kword is halt nur "Welcome:

Array ( [0] => Array ( [0] =>
Welcome on maplandia.com!

) [1] => Array ( [0] => class="tp" ) [2] => Array ( [0] => Welcome on maplandia.com! ) )

Warning: strstr() expects parameter 1 to be string, array given in C:\xampp\htdocs\viki\6.php on line 34
ja
 
Kurzer Blick in die PHP-Doku und du weisst sofort warum mein nicht getestetes und aus dem Kopf geschriebenes Script diesen Fehler wirft.
 
PHP:
$foundTrix = false;
	foreach($treffer as $item){
		if(@strstr($item, $keyword) !== false){
        $foundTrix = true;
        break;
    }
}

			if($foundTrix){
				print "gefunden";
			}else{
				print "nicht gefunden";
			}
 
*LACH*
Ein Fehler Unterdrücken behebt ihn NICHT!
Das wird so niemals das gewünschte Resutat ausgeben. Auch keine Fehlermeldung, aber auch nie das er es gefunden hat.

Ich sehe grade auch, dass dein $treffer natürlich kein normales array ist sondern ein doppeltes Array. Ist mir in dieser unleserlichen Ausgabe gar nicht aufgefallen. Das sieht man erst wenn man die var_dump() ausgaben formatiert oder als HTML-Source anschaut....

Code:
array(3) {
    [0]=> array(1) {
        [0]=> string(45) "Welcome on maplandia.com!"
    }
    [1]=> array(1) {
        [0]=> string(11) " class="tp"" 
    }
    [2]=> array(1) {
        [0]=> string(25) "Welcome on maplandia.com!" 
    }
}
Ergo musst du nicht $treffer durchsuchen sondern $treffer[2]
 
Zurück