php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #16 (permalink)  
Alt 24-11-2006, 11:23
Griecherus
 PHP Senior
Links : Onlinestatus : Griecherus ist offline
Registriert seit: May 2005
Ort: Berlin
Beiträge: 1.036
Griecherus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich glaube du solltest dich erstmal mit den Grundlagen befassen. Das ist jetzt nicht böse gemeint, nur hat das Ganze so nicht viel Sinn, da es einfach an zu vielen Stellen hapern wird. Dann kannst du dir auch besser selbst helfen.
Am besten gehst du mal die Doku im PHP-Manual durch. Da wird alles gut und verständlich erklärt.

Fehler in deinem Schnipsel:
$documents wird mit keinen Daten gefüttert, da du glob und foreach falsch anwendest.
Richtig (vereinfacht):
PHP-Code:
$documents = array();
foreach (
glob('*.html') as $document) {
   
$documents[] = $document;

dann (ebenfalls stark vereinfacht):
PHP-Code:
foreach ($documents as $document) {
  
$content strip_tags(file_get_contents($document));
}
// ... 
Ich würde dir wirklich nahelegen, dich erstmal mit den Grundlagen zu befassen, damit du einen besseren Überblick hast und schneller zu eigenen Ergebnissen kommst.

Gruß, der Grieche
Mit Zitat antworten
  #17 (permalink)  
Alt 24-11-2006, 11:23
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

http://www.php-faq.de/q/q-code-verzeichnis.html
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #18 (permalink)  
Alt 24-11-2006, 11:28
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
foreach(glob('pfad/zum/Verzeichnis/*.html') as $filename){
    
$daten strip_tags(file_get_contents($filename));
    if(
strpos($daten,$_GET['s']) !== false){
        
//Begriff wurde gefunden also einen Link drauf anlegen
        
echo '<li><a href="'.$filename.'">bla</a></li>';
    }else{
        
//Diese Datei enthält den Begriff nicht
        
echo "-.-";
    } 

Wenn schon dann so

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #19 (permalink)  
Alt 24-11-2006, 12:23
dani1609
 Newbie
Links : Onlinestatus : dani1609 ist offline
Registriert seit: Nov 2006
Beiträge: 29
dani1609 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hallo,

danke schonmal für die vorschläge. ich werde sie mir am montag genauer ansehen. leider muss ich jetzt auf eine "geschäftreise" gehn, geht übers ganze woe.

was ich festgetellt habe wenn ich das benutze:

PHP-Code:
    foreach(glob('D:/xampp/xampp/htdocs/*.html') as $filename){
    
$daten strip_tags(file_get_contents($filename));
    if(
strpos($daten,$_GET['s']) !== false){
        
//Begriff wurde gefunden also einen Link drauf anlegen
        
echo '<li><a href="'.$filename.'">'.$filename.'</a></li>';
    }else{
        
//Diese Datei enthält den Begriff nicht
        
echo "-.-";
    } 

bekomme ich folgende ausgabe:



Zitat:
# Treffer mit hallo :
hallo.html
-.--.-
er geht also noch in das else mit rein.


und bei diesem code bekomme ich nur die ausgabe:

Treffer mit hallo :-.-



PHP-Code:
$documents = array();
foreach (
glob('*.html') as $document) {
   
$documents[] = $document;
}

foreach (
$documents as $document) {
$content strip_tags(file_get_contents($document));
}
if(
stripos($content,$_GET['s']) !== false){
    
//Begriff wurde gefunden also einen Link drauf anlegen
    
echo('<li><a href="'.$document.'">'.$document.'</a></li>'.PHP_EOL);
}else{
    
//Diese Datei enthält den Begriff nicht
    
echo "-.-";

mfg
dani

ps: schonmal ein ganz großes danke an alle für die hilfreichen tipps !
Mit Zitat antworten
  #20 (permalink)  
Alt 27-11-2006, 10:31
dani1609
 Newbie
Links : Onlinestatus : dani1609 ist offline
Registriert seit: Nov 2006
Beiträge: 29
dani1609 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so ich bin wieder zurück ^^.
ich habe heute morgen jetzt schon probiert herauszufiltern warum er auch in die else schleife geht. aber ich bekomm das nicht so gut hin. hab mit echo probiert verschiedene variablen auszugeben und zu schauen wom der fehler liegen könnte aber bis jetzt ergab sich noch nix. hat jemd einen tipp ?
Mit Zitat antworten
  #21 (permalink)  
Alt 27-11-2006, 17:26
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
ich habe heute morgen jetzt schon probiert herauszufiltern warum er auch in die else schleife geht
In den else-Teil geht der Code weil wohl nicht jede gefundene HTML Datei den Suchstring im Namen enthält. Es ist gewollt, dass der Code in den else-Zweig geht, wenn der Suchtext nicht im Namen enthalten ist.
PHP-Code:
foreach(glob('D:/xampp/xampp/htdocs/*.html') as $filename){
    
$daten strip_tags(file_get_contents($filename));
    if(
strpos($daten,$_GET['s']) !== false){
        
//Begriff wurde gefunden also einen Link drauf anlegen
        
echo '<li><a href="'.$filename.'">'.$filename.'</a></li>';
    }else{
        
//Diese Datei enthält den Begriff nicht
        
echo 'Diese Datei enthält den Begriff nicht: '.$filename.'<br />';
    } 

Sollte dir die Namen anzeigen, die den Suchtext nicht enthalten. Wenn der Code dann läuft ersetzt und das echo im else einfach durch continue und die Schelife wird direkt zum nächsten Namen springen.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #22 (permalink)  
Alt 28-11-2006, 10:00
dani1609
 Newbie
Links : Onlinestatus : dani1609 ist offline
Registriert seit: Nov 2006
Beiträge: 29
dani1609 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hhmmmmm ich hab jetzt das else leer gelassen. im prinzip sowas in der art wie du hast. nur das du die nichtgefundenen auch noch ausgibst. ich möchte aber nicht nach dateinamen suchen sondern nach dateiinhalt. warum will er den suchstring dann auch im namen haben ?
Mit Zitat antworten
  #23 (permalink)  
Alt 28-11-2006, 17:23
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
warum will er den suchstring dann auch im namen haben ?
wieso denn Suchstring im Namen. file_get_contents() liest dir den Inhalt der Datei in einen String und diesen durchsuchst du nach dem Suchtext. Wenn gefunden gibst du einen Link auf die Datei aus. Bau doch einfach das continue; in den else-Zweig und es sollte funzen, so wie du es willst.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #24 (permalink)  
Alt 30-11-2006, 14:28
dani1609
 Newbie
Links : Onlinestatus : dani1609 ist offline
Registriert seit: Nov 2006
Beiträge: 29
dani1609 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von jahlives
wieso denn Suchstring im Namen. file_get_contents() liest dir den Inhalt der Datei in einen String und diesen durchsuchst du nach dem Suchtext. Wenn gefunden gibst du einen Link auf die Datei aus. Bau doch einfach das continue; in den else-Zweig und es sollte funzen, so wie du es willst.

Gruss

tobi
danke das hat schonmal gut geklappt. aber ich habe eine frage. ist es möglich das er nur suchergebnisse anzeigt die exakt mit dem string in der datei über einstimmen ? wenn ich zb nach hallo suche zeigt er mir einen treffer in einer datei an genauso wie wenn ich nur nach h suche. oder es sollten zumindest die ersten 3 buchstaben exakt sein somit wäre die suche verfeinert. schonmal danke an euch.
Mit Zitat antworten
  #25 (permalink)  
Alt 30-11-2006, 16:38
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
wenn ich zb nach hallo suche zeigt er mir einen treffer in einer datei an genauso wie wenn ich nur nach h suche. oder es sollten zumindest die ersten 3 buchstaben exakt sein somit wäre die suche verfeinert
Wie bitte ? Wenn du mit strpos() nach hallo suchst, werden dir Treffer nur mit h ganz bestimmt nicht gefunden. Sonst wäre deine PHP Installation im Arsch...
Wenn du die Suche aber flexibler gestalten willst, dann kommst du um reguläre Ausdrücke wohl kaum herum.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #26 (permalink)  
Alt 01-12-2006, 10:51
dani1609
 Newbie
Links : Onlinestatus : dani1609 ist offline
Registriert seit: Nov 2006
Beiträge: 29
dani1609 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also es ist so ich hab ja des script hier:


PHP-Code:
    // Nur html Dateien
    
foreach(glob('*.html') as $filename){
    
$daten strip_tags(file_get_contents($filename));
    if(
strpos($daten,$_GET['s']) !== false){
        
//Begriff wurde gefunden also einen Link auf die Datei machen
        
echo '<li><span style=\"color: #008000\"><a href="'.$filename.'">'.$filename.'</a></span></li>';
    }else{
    continue;
        
//Diese Datei enthält den Begriff nicht
        //echo '<span style=\"color: #FF0000\">Kein Treffer: '.$filename.'</span><br>';
    


dann hab ich im gleichen ordner ne html datei (hallo.html) in der nur der text "hallo" steht (ohne "" ). jetzt such ich über das script nach hallo. dann zeigt er die hallo.html als treffer an. wenn ich jetzt nur ein h angebe bei der suche zeigt er mir wieder hallo.html als treffer an. wie kann das sein? ich habe ApacheFriends XAMPP (basic package) version 1.5.4a bei mir installiert.


mfg



€dit:
hier ein bsp:



das eingegebene gebe ich nur nochmal zur überprüfung aus....

Geändert von dani1609 (01-12-2006 um 10:55 Uhr)
Mit Zitat antworten
  #27 (permalink)  
Alt 01-12-2006, 17:35
kuddeldaddeldu
 Registrierter Benutzer
Links : Onlinestatus : kuddeldaddeldu ist offline
Registriert seit: Sep 2006
Beiträge: 437
kuddeldaddeldu ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja und? Works as designed. "h" ist in "hallo" enthalten. Beschreibe mal klar und deutlich, was Du eigentlich willst.
Meine Vermutung: Du willst nur nach ganzen Wörtern suchen. Dann kommst Du, wie Tobi schon sagt, um reguläre Ausdrücke nicht herum.

LG
Mit Zitat antworten
  #28 (permalink)  
Alt 01-12-2006, 17:35
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
wenn ich jetzt nur ein h angebe bei der suche zeigt er mir wieder hallo.html
Du scheinst nicht zu verstehen was strpos() macht. Es sucht nach dem Suchstring und wenn du nach 'h' suchst dann wird die Fkt auch hallo.html finden, weil darin ein 'h' enthalten ist.
Wie ich dir auch bereits geschrieben habe,wäre in diesem Falle wo du nur ganze Treffer willst, wohl der Einsatz von regulären Ausdrücken zu empfehlen.
Schau dir dazu mal das Manual für preg_match() resp preg_match_all() an.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #29 (permalink)  
Alt 01-12-2006, 18:29
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@topicstarter
Wenn du nur nach dem ganzen Ausdruck suchen willst böte sich ein solcher RegExp an
PHP-Code:
//ganzes Wort
preg_match('/\\\b'.$text.'\\\b/i',$deinString,$treffer);
//Wenn Treffer 0 nicht empty ist
if(!empty($teffer[0])){
    
//also haben wir einen Treffer
}else{
   
//haben wir keinen Treffer
}

//nur Wortanfang
preg_match('/\\\b'.$text.'\\\B/i',$deinString,$treffer);
//Wenn Treffer 0 nicht empty ist
if(!empty($teffer[0])){
    
//also haben wir einen Treffer
}else{
   
//haben wir keinen Treffer

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #30 (permalink)  
Alt 04-12-2006, 09:34
dani1609
 Newbie
Links : Onlinestatus : dani1609 ist offline
Registriert seit: Nov 2006
Beiträge: 29
dani1609 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@kuddeldaddeldu
ja ich will nach der genauen zeichenkette suchen die ich in das textfeld eingebe und in $_GET['s'] speichere. diese zeichenkette will ich dann benutzen um in dateien nach einer gleichen zeichenkette zu suchen. ist zb $_GET['s'] = "hallo" und in der datei der string hallo vorhanden dann soll ein link ausgegeben werden mit dem dateinamen in dem der treffer war. wenn ich den link klicke soll man die datei öffnen und direkt zu der stelle springen an der der string steht.




@jahlives

Danke für den Source.
Ich habe nun versucht diesen anzupassen an meinen Code, leider hat das nicht so ganz gefunzt.


PHP-Code:
foreach(glob('*.html') as $filename){
//ganzes Wort
preg_match('/\b'.$_GET['s'].'\b/i',$filename,$treffer);
//Wenn Treffer 0 nicht empty ist
if(!empty($teffer[0])){
for(
$i=0$i<10$i++) {
    
//also haben wir einen Treffer
    
echo "".$treffer[$i]."<br>";
    }
}else{
   
//haben wir keinen Treffer
}

der erste parameter ist ja das suchmuster und der 2te die zeichenkette nachder ich suche. nur leider hat das bei mir nicht so geklappt. ich hab dann in google was entdeckt das ich ja auch den dateinamen mitübergeben muss nur gibt dieser code nix aus.also die array ausgabe passt ja aber ich komm nicht so ganz klar wie ich ihm sage das er den string in der datei suchen soll.

mfg
dani

Geändert von dani1609 (04-12-2006 um 09:41 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

LEPTON CMS ansehen LEPTON CMS

LEPTON CMS ist eine weiterentwickelte Ableitung (Fork) des CMS „WebsiteBaker“ der Version 2.8.1. Im Jahre 2010. Das Entwicklerteam hat den ursprünglichen „Geist” erhalten. Inzwischen wurde aber kräftig entwickelt.

13.08.2018 erpe | Kategorie: PHP/ CMS
Kostenlose Thumbshots (Screenshots) ansehen Kostenlose Thumbshots (Screenshots)

Wir bieten Ihnen die automatischen Erstellung von kleinen Thumbshots (Screenshots einer beliebigen URL) Diese können benutzt werden umeine Vorschau einer URL (eines Links) zu verdeutlichen. Der Service ist absolut kostenlos auch für gewerbliche Nutzung

01.08.2018 myengines | Kategorie: WEBMASTER/ Tools
html5pattern ansehen html5pattern

Pflichtfelder und Eingabevorgaben für Formulare validieren

06.07.2018 Berni | Kategorie: HTML5/ HowTo
 Alle PHP Scripte anzeigen

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