php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Jobs und Projekte > Projekthilfe
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Projekthilfe Hier könnt Ihr eine Art Projekthilfe anfordern. Unter Projekthilfe verstehen wir Angebote bei denen KEIN Geld gezahlt werden kann.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-08-2008, 19:01
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP Anfänger: Daten einlesen, vergleichen, Ergebnis speichern.

Hallo.

In diesem Beitrag habe ich folgende Aufgabenstellung zu lösen.
In einer Datei stehen zeilenweise Verben.
Diese Verben (Suchnamen) sollen in Dateien eines Ordners gesucht werden.
Wenn fündig geworden, in neue Datei nach folgendem Schema schreiben:
Dateiname der Datei, die Suchname enthält#Suchname1, Suchmame2, Suchname3 usw.
Beispiel: gehen#geht,gehen,ging
Wenn nicht fündig geworden, Suchnamen in andere Datei schreiben.

Hintergrund:
Ich möchte die Verben portugiesischer Texte mit den entsprechenden Übersetzungstabellen verlinken. Diese stehen in einem eigenen Ordner als eigenständige Datei und sollen später per include eingebunden werden.
Jetzt möchte ich erst einmal festhalten, welche Verben zu welchen Tabellen gehören und dieses zur weiteren Verarbeitung abspeichern.

Ablaufplan:
Zeilenweises Einlesen der Datei Suchnamen.txt mit file
Festlegen des TabellenOrdners
Handler erstellen mit opendir
Mit while und readdir die Dateien der Reihe nach durcharbeiten.
Feststellen, ob Suchname in der Datei vorhanden ist.
Dateinamen der Datei, die den Suchnamen enthält mit dem Suchnamen in neue Datei nach obrigem Schema schreiben.
Wenn nicht gefunden, in andere Datei Suchnamen schreiben.

Lösungsversuch:

PHP-Code:
<?php
$SuchNam 
'Suchnamen.txt';
$TzO 'TabzuOrdnung.txt'
$KTzO 'KeineTabzuOrdnung.txt';
$SN file ($SuchNam);
$dir 'tabs/';
$dh opendir($dir);

foreach (
$SN as $nr => $zeile) { //echo ($SN).($nr).($zeile).'<br>';
                                
while ($file readdir ($dh)){
                                
//print_r($file);
                                    
if (is_file($file)){
                                    
//Anweisungen
                                    
$lines file ($file);
                                        foreach (
$lines as $value => $Lzeile) {
                                        echo (
"$Lzeile");
                                    
                                      }
                                    }
                                     }
                                }
closedir($dh);
?>
Zu dem hier erstellten Code habe ich verschiedene Fragen.
1. Wieso bekomme ich mit dem letzten echo nicht die erste Zeile der ersten Datei im Tabellenordner angezeigt, wie ich es erwartet hatte, sondern gar nichts?
Danach wollte ich nähmlich die Zeile auf Suchnamen prüfen, was mich zur zweiten Frage führt.
2. Wie prüfe ich in PHP, ob in einem Array ein Begriff vorhanden ist? Oder grundsätzlicher, wie überprüfe ich, ob in einer Datei ein Begriff vorhanden ist?

Wenn es günstigere Lösungsansätze gibt, bin ich für Hinweise dankbar.

Gruß
Estrela
Mit Zitat antworten
  #2 (permalink)  
Alt 20-08-2008, 00:56
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo zusammen.

Ich habe jetzt mal einen anderen Ansatz gewählt, indem ich zuerst die Tabellen versuche einzulesen:
PHP-Code:
<?php
$SuchNam 
'Suchnamen.txt';
$TzO 'TabzuOrdnung.txt'
$KTzO 'KeineTabzuOrdnung.txt';
$SN file ($SuchNam);
$dir 'tabs/';

if (
$handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
            echo 
"$file\n".'<br>';
            
$Text file_get_contents ($file); // Line 21
            //echo ($Text);
        
}
    }
    
closedir($handle);
}
?>
Leider bekomme ich jetzt folgende Fehlermeldungen pro Datei:
purificar.php

Warning: file_get_contents(purificar.php) [function.file-get-contents]: failed to open stream: No such file or directory in /home/public_html/test2/test2.php on line 21

Das vorlaufende echo liefert aber genau diese Dateien, die mit file_get_contens als nicht vorhanden angemahnt werden.
Ich habe die Dateiattribute probehalber auf 777 gesetzt, aber ohne Wirkung.

Wo ist der Fehler?
Währe hilfreich, wenn mir jemand auf die Sprünge helfen könnte.

Gruß
Estrela
Mit Zitat antworten
  #3 (permalink)  
Alt 20-08-2008, 10:14
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
No such file or directory in /home/public_html/test2/test2.php on line 21
Sagt doch schon alles. Du solltest dir noch einmal ansehen, was readdir genau macht
Zitat:
Gibt den Dateinamen des nächsten Files des Verzeichnisses zurück.
Entscheidend ist der Unterschied zwischen Dateiname und Dateipfad. Jetzt solltest du drauf kommen können
Mit Zitat antworten
  #4 (permalink)  
Alt 20-08-2008, 18:11
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo PHP-Desaster.

Deine Antworten sind besser, als Dein Name vermuten läßt. Du hast nähmlich genau mein Mißverständnis erkannt.
Ich ging nähmlich implizit davon aus, das sich das Script, und damit auch der Befehl file_get_contens schon im Ordner tabs befindet, weil ich ja diesen Weg schon hatte beschreiten lassen, um die Dateinamen herrauszufinden.
Aber auch nur genau diese befinden sich ja jetzt in der Variablen, so das der nächste Befehl nach den Dateinamen im Ordner der ausführenden Datei sucht. Ist ja auch logisch.
Danke für Deine Aufklärung.
Dann schreibe ich file_get_contents ("$dir".$file); und es funktioniert.
Das nachfolgende echo zeigt den Inhalt aller Dateien.
Ich habe jetzt mal versucht, die Prüfung auf folgende Weise zu realisieren:
PHP-Code:
<?php
$SuchNam 
'Suchnamen.txt';
$TzO 'TabzuOrdnung.txt'
$KTzO 'KeineTabzuOrdnung.txt';
$SN file ($SuchNam);
$dir 'tabs/';

if (
$handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
            echo 
"$file\n".'<br>';
            
$Text file_get_contents ("$dir".$file);
            
$Prüf stripos($Text$SN);
            echo (
$SN);
                if (
$Prüf === false) {
                
// Anweisungen für nicht vorhanden
                
}
                if (
$Prüf !== false) {
                
// Anweisungen für vorhanden            
                
}
        }
    }
    
closedir($handle);
}
?>
Da bekomme ich diese Meldung: Warning: stripos() [function.stripos]: needle is not a string or an integer.
Er ist also mit $SN nicht einverstanden, das ja durch file ein Array ist.
Wie formuliere ich in PHP, das jede Datei auf vorhandensein aller Suchnamen in der Datei Suchnamen.txt geprüft wird?

Dank und Gruß
Estrela
Mit Zitat antworten
  #5 (permalink)  
Alt 20-08-2008, 18:31
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Estrela
Da bekomme ich diese Meldung: Warning: stripos() [function.stripos]: needle is not a string or an integer.
Er ist also mit $SN nicht einverstanden, das ja durch file ein Array ist.
Wie formuliere ich in PHP, das jede Datei auf vorhandensein aller Suchnamen in der Datei Suchnamen.txt geprüft wird?
dass array kannst du mit einer schleife durchlaufen: foreach

um gleich dem nächsten problem vorzubeugen, file liest die zeilen inkl. zeilenumbruch ein, den musst du eventuell noch entfernen rtrim() (je nachdem, wie deine einzulesenden dateien aufgebaut sind)
Mit Zitat antworten
  #6 (permalink)  
Alt 20-08-2008, 23:23
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo zusammen.

Also die Abfragen scheinen mir "suboptimal" zu sein.
PHP-Code:
if ($handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
            
//echo "$file\n".'<br>';
            
$Text file_get_contents ("$dir".$file);
            
//echo ($Text);
            
foreach ($SN as $nr => $zeile) {
                
$Prüf stripos($Text$zeile);
                
//echo ($zeile);
                    
if ($Prüf === false) {
                    
// Anweisungen für nicht vorhanden
                    
$Schreib file_put_contents ($KTzO$zeile,FILE_APPEND);
                    }
                    if (
$Prüf !== false) {
                    
// Anweisungen für vorhanden
                    
$Schreib file_put_contents ($TzO$zeile,FILE_APPEND);            
                    }
                }
        }
    }
    
closedir($handle);

Ein paar Zahlen zum Hintergrund.
In jeder Tabelle sind ca 400 Zeilen vorhanden und sehen an den entscheidenen Stellen so aus:
<td align="center">abençoa</td>
<td align="center">não abençoes</td>
</tr>
<tr>
<td align="center">abençoe</td>
<td align="center">não abençoe</td>
</tr>
<tr>
<td align="center">abençoemos</td>
<td align="center">não abençoemos</td>
</tr>
<tr>
<td align="center">abençoai</td>
<td align="center">não abençoeis</td>

Ich sage das, weil ich keine einzige Übereinstimmung angezeigt bekomme. Dafür aber 499 doppelte Einträge in $KTzO, weil ja für jede Datei überprüft wird.
Wie frage ich die Anwesenheit des Verbes in der Tabelle richtig ab und wie schreibe ich dieses Verb bei Nichtübereinstimmung mit keiner Tabelle in $KTzO derartig, das es dann auch nur einmal aufgeführt wird und nicht wie jetzt pro Tabelle einmal?

Von diesen Tabellen sind ca 500 vorhanden und in Suchnamen.txt stehen etwa 3000 Wörter, was ich deshalb erwähne, weil ein timeout angezeigt wurde.

Währe freundlich, wenn mir jemand in dieser verschachtelten Situation weiterhilft.

Estrela
Mit Zitat antworten
  #7 (permalink)  
Alt 20-08-2008, 23:43
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

warum stellst du neue fragen, wenn du meine antwort aus deiner vorangegangenen frage ignorierst?

ich hatte dich auf ein problem aufmerksam gemacht, welches du jetzt anscheinend hast.

insofern verkneife ich mir antworten auf deine neuen fragen.
Mit Zitat antworten
  #8 (permalink)  
Alt 21-08-2008, 00:49
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo 3DMax.

Deinem Hinweis auf foreach bin ich doch nachgegangen.
Hätte nicht gedacht, das der Zeilenumbruch Auswirkungen auf den Vergleich hat, obwohl Du ja auf ein nächstes Problem verwiesen hast.
Habe also die Zeilen wie folgt modifiziert:
PHP-Code:
            foreach ($SN as $nr => $zeile) {
                
$zeile rtrim ($zeile);
                
$Prüf stripos($Text$zeile); 
Das grundlegende Problem der Gestaltung der Abfragen bleibt jedoch bestehen, wie ein erneutes: "Fatal error: Maximum execution time of 60 seconds exceeded in " wieder gezeigt hat.
Insofern möchte ich Dich einladen, Deine Antworten auf die neuen Fragen einfach fließen zu lassen.

Gruß
Estrela
Mit Zitat antworten
  #9 (permalink)  
Alt 21-08-2008, 01:45
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Estrela
Das grundlegende Problem der Gestaltung der Abfragen bleibt jedoch bestehen, wie ein erneutes: "Fatal error: Maximum execution time of 60 seconds exceeded in " wieder gezeigt hat.
zu optimieren gibt es natürlich jede menge, aber es ist ja eine einmalige aktion. von daher einfach mal das zeitlimit auf anschlag setzen.
PHP-Code:
ini_set('max_execution_time', -1); 
ein strip_tags() auf den inhalt der tabellen-dateien ist in diesem zusammenhang auch ratsam, aber hauptsächlich um fehler zu vermeiden (html-tags, die u.u. den suchbegriff enthalten)

so, das script sollte dann erstmal durchlaufen.
du müsstest dann nochmal erklären, was du genau speichern möchtest.
Mit Zitat antworten
  #10 (permalink)  
Alt 21-08-2008, 15:39
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo 3DMax.

Jetzt trudeln auf jeden Fall schon mal mehr gefundene Übereinstimmungen in der Datei $TzO ein. Super.

Was auf jeden Fall falsch an dieser Stelle ist, ist die Abfrage auf nicht Übereinstimmung und die anschließende Behandlung.
Der richtige Ablauf währe folgendermaßen:
Zuerst stehen alle zu überprüfenden Begriffe in der Datei Suchnamen.txt.
Dann werden diese Suchnamen mit der ersten Tabelle verglichen.
Die gefundenen Übereinstimmungen sollen mit dem Namen der Datei der Tabelle zeilenweise in $TzO gespeichert werden. Beispiel:
laufen.php# gelaufen,lief,laufen
gehen.php#ging, gehen, gegangen usw.
Das bedeutet, wenn das Suchwort gelaufen in der Tabelle laufen.php gefunden wird, soll das script in der Datei $TzO überprüfen, ob schon eine Zeile existiert, die mit laufen.php beginnt.
Wenn nein, in neue Zeile laufen.php schreiben mit anschließendem Trennzeichen # und dem Suchwort gelaufen.
Wenn ja, in dieser gefundenen Zeile ans Ende springen, ein Komma einfügen und das aktuelle Suchwort anfügen.
Dadurch wird dann ersichtlich, welche Tabelle für welche Suchnamen(Verben) zuständig ist.
Die gefundenen Übereinstimmungen sollen aber auch aus der Datei Suchnamen.txt entfernt werden, damit sie bei der nächsten Tabelle nicht wieder mit überprüft werden müssen. Somit werden nach und nach die Übereinstimmungen aus der Datei Suchnamen entfernt, so das danach nur noch die nicht übereinstimmenden Namen in der Datei Suchnamen vorhanden sind, womit sich dann auch obrige falsche Abfrage auf Nichtübereinstimmung erübrigt.

Wenn Du mir da bei der Übersetzung in PHP behilflich sein könntest, währe ich Dir echt dankbar.

Der aktuelle Stand:
PHP-Code:
<?php
$SuchNam 
'Suchnamen.txt';
$TzO 'TabzuOrdnung.txt'
$KTzO 'KeineTabzuOrdnung.txt';
$SN file ($SuchNam);
$dir 'tabs/';
ini_set('max_execution_time', -1);

if (
$handle opendir($dir)) {
    while (
false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
            
//echo "$file\n".'<br>';
            
$Text file_get_contents ("$dir".$file);
                         
$Text strip_tags($Text);
            
//echo ($Text);
            
foreach ($SN as $nr => $zeile) {
                
$zeile rtrim ($zeile);
                
$Prüf stripos($Text$zeile);
                
//echo ($zeile);
                    
if ($Prüf === false) {
                    
// Anweisungen für nicht vorhanden
                    //$Schreib = file_put_contents ($KTzO, $zeile,FILE_APPEND);
                    
}
                    if (
$Prüf !== false) {
                    
// Anweisungen für vorhanden
                    
$Schreib file_put_contents ($TzO$zeile,FILE_APPEND);            
                    }
                }
        }
    }
    
closedir($handle);
}
?>
Gruß
Estrela

Geändert von Estrela (21-08-2008 um 15:48 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 21-08-2008, 16:41
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Estrela
Tabelle zeilenweise in $TzO gespeichert werden. Beispiel:
laufen.php# gelaufen,lief,laufen
gehen.php#ging, gehen, gegangen usw.
Das bedeutet, wenn das Suchwort gelaufen in der Tabelle laufen.php gefunden wird, soll das script in der Datei $TzO überprüfen, ob schon eine Zeile existiert, die mit laufen.php beginnt.
Wenn nein, in neue Zeile laufen.php schreiben mit anschließendem Trennzeichen # und dem Suchwort gelaufen.
Wenn ja, in dieser gefundenen Zeile ans Ende springen, ein Komma einfügen und das aktuelle Suchwort anfügen.
ich würd's nicht direkt in die datei schreiben, sondern erstmal in ein mehrdimensionales array (key ist der dateiname, value ist ein array der suchwörter dazu) und das dann ganz am ende wegschreiben.
PHP-Code:
// Leeres Trefferarray
$treffer = array();

// Einfügen von Datei und Suchwort (innerhalb der Schleife)
if(!isset($treffer[$datei]))
{
    
$treffer[$datei] = array();
}

$treffer[$datei][] = $suchwort;


// Ganz am Ende, das Array zeilenweise in dein geünschtes Format konvertieren
foreach($treffer as $datei => $suchwoerter)
{
    
$zeile $datei.'#'.implode(','$suchwoerter)."\n";



Zitat:
Original geschrieben von Estrela
Die gefundenen Übereinstimmungen sollen aber auch aus der Datei Suchnamen.txt entfernt werden, damit sie bei der nächsten Tabelle nicht wieder mit überprüft werden müssen. Somit werden nach und nach die Übereinstimmungen aus der Datei Suchnamen entfernt, so das danach nur noch die nicht übereinstimmenden Namen in der Datei Suchnamen vorhanden sind, womit sich dann auch obrige falsche Abfrage auf Nichtübereinstimmung erübrigt.
die suchbegriffe hast du doch schon in $SN = file ($SuchNam);

also wenn gefunden, einfach aus $SN rausschmeißen.
EDIT:
ELSE-Teill entfernt

Geändert von 3DMax (21-08-2008 um 16:44 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 21-08-2008, 18:26
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo 3DMax.

Kümmern Wir Uns doch erstmal um das vermeidlich einfachere.

Deinen Aussagen:

"die suchbegriffe hast du doch schon in $SN = file ($SuchNam);

also wenn gefunden, einfach aus $SN rausschmeißen.

EDIT:ELSE-Teill entfernt"

kann ich leider nichts konkretes entnehmen.
Ich habe versucht, das so umzusetze, leider ohne irgend eine Wirkung:

PHP-Code:
                    if ($Prüf !== false) {
                    
// Anweisungen für vorhanden
                    
$Schreib file_put_contents ($TzO$zeile,FILE_APPEND);
                    
$repl "";
                    
$zeile str_replace ($zeile,$repl,$zeile);            
                    } 
Kannst Du mir "rausschmeißen" programmiertechnisch etwas genauer darstellen?

Gruß
Estrela
Mit Zitat antworten
  #13 (permalink)  
Alt 21-08-2008, 22:16
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo 3DMax.

Vielleicht hätte ich erstmal die Eleganz Deines Ansatzes mit dem Array würdigen sollen, was ich hiermit gerne nachholen will.
Da ich aber so spontan nicht wusste, wie er einzubauen ist, wollte ich das vermeidlich leichtere erst mal angehen.
Möchte hier darauf aufmerksam machen, das das hier unter der Überschrift PHP-Anfänger läuft.
Und ich bin momentan nicht in der Lage, die gefundene Übereinstimmung in der Ursprungsdatei zu löschen. Aktuellster Versuch:
PHP-Code:
                    if ($Prüf !== false) {
                    
// Anweisungen für vorhanden
                    
$Schreib file_put_contents ($TzO$zeile,FILE_APPEND);
                    
$repl "";
                    
$SN str_replace ($zeile,$repl,$SN);            
                    } 
Hier verstehe ich nicht, warum die Anweisung nicht so läuft, wie ich sie mir vorstelle.
Mit $SN habe ich doch den Dateihandler, dann sage ich mit str_replace, das alle $zeile mit $repl in $SN zu ersetzen sind, womit die gefundenen Suchnamen gelöscht sein sollten.
Warum funktioniert das nicht?

Gruß
Estrela
Mit Zitat antworten
  #14 (permalink)  
Alt 22-08-2008, 18:22
Estrela
 Registrierter Benutzer
Links : Onlinestatus : Estrela ist offline
Registriert seit: Jun 2008
Beiträge: 165
Estrela ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo zusammen.

Leider ist es mir immer noch nicht gelungen, die Übereinstimmungen aus der Datei Suchnamen.txt zu entfernen.
Der Code:
PHP-Code:
            foreach ($SN as $nr => $zeile) {
                
$zeile rtrim ($zeile);
                
$Prüf stripos($Text$zeile);
                echo (
$zeile."<br>");
                    if (
$Prüf !== false) {
                    
// Anweisungen für vorhanden
                    
$zeile2 $zeile."\n";
                    
$Schreib file_put_contents ($TzO$zeile2,FILE_APPEND);
                    
$zeile "000";
                    echo (
$zeile);
                    
/*echo ($nr).'<br>';
                    $repl = "";
                    $Les = file_get_contents ($SuchNam);
                    echo ($Les);
                    $Lösch = str_replace ($zeile,$repl,$SuchNam);
                    echo ($Lösch);
                    $Lösch2 = file_put_contents ($SuchNam,$Lösch);*/            
                    
}
                } 
Mit den beiden ersten echos ist es mir zwar gelungen, im Browser die Übereinstimmungen sichtbar zu machen, nützt aber nichts, weil im nächsten Durchlauf wieder alle Suchnamen überprüft werden.
Den zweiten Ansatz im auskommentierten Bereich konnte ich auch nicht erfolgreich durchführen, am Ende steht nur der Dateiname in $SuchNam.

Bin daher für alle konstruktiven Äußerungen dankbar, die das Script in Richtung Lösung wachsen lassen.

Gruß
Estrela
Mit Zitat antworten
  #15 (permalink)  
Alt 22-08-2008, 23:38
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

leute, bin ich hier alleinunterhalter?

Zitat:
Original geschrieben von Estrela
Hallo 3DMax.

Vielleicht hätte ich erstmal die Eleganz Deines Ansatzes mit dem Array würdigen sollen, was ich hiermit gerne nachholen will.

Mit $SN habe ich doch den Dateihandler, dann sage ich mit str_replace, das alle $zeile mit $repl in $SN zu ersetzen sind, womit die gefundenen Suchnamen gelöscht sein sollten.
Warum funktioniert das nicht?
wie kommst du darauf, dass $SN ein filehandle/resource ist? file() liefert ein array zurück! und selbst wenn es eine resource wäre, müsstest du den dateiinhalt nach dem schreiben auch wieder neu auslesen.

dann habe ich auch keine lobeshymnen erwartet, sondern dass du es alleine schaffst eine element aus dem array "rauszuschmeißen", nämlich mit unset($array[$key]);

---
so, um jetzt noch ein bisschen verwirrung reinzubringen :

die empfehlung mit strip_tags() ziehe ich zurück und bei str_pos() würde ich dann nach '>'.$suchwort.'<' suchen, falls das suchwort teil eines anderen wortes ist.

EDIT:
wärst du nicht schon lange fertig, wenn du das manuell gemacht hättest?
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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:45 Uhr.