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
  #1 (permalink)  
Alt 03-06-2005, 18:27
Sardine
 Newbie
Links : Onlinestatus : Sardine ist offline
Registriert seit: Apr 2004
Ort: Pazifischer Ozean
Beiträge: 44
Sardine ist zur Zeit noch ein unbeschriebenes Blatt
Standard 40000 Zeilen aus txt auslesen

Hallo,
ich hab mir ein Skript gebastelt, welches mir eine *.txt Datei ausliest und alle Zeilen der Reihe nach auflistet und noch geichzeitig durchnummereriert.

Wie ihr euch jetzt denken könnt, ist das ganze Teil jetzt recht lahm geworden und braucht etwa 20 Sec. bis die Seite komplett ausgelesen ist.

Zustzlich hab ich noch ne Suchfunktion, die ebenfalls alle Einträge der Datei durchsucht und die Treffer dann listet und ebenfalls nummerriert.

Dadurch ist das Skript nun so langsam, dass ich öfter timeout Fehler bekomme (php.ini timeout steht bei 30 sec.).

kann mir evtl. jemand helfen wie ich sowas schneller gestalten kann (also irgendwie alle Daten einfach in ein Array legen oder so welches ich dann gleichzeitig durchsuchen und komplett ausgeben kann oder so).

Steh etwas auf dem Schlauch gerade, hab auch schon einies getestet, was aber alles nicht zufriedenstellend arbeitet.

Hier mal der Link
und noch der Code:
PHP-Code:
<?php
#################################################################################
//Wandeln des eingegebenen Suchwortes in die "suchfreundliche" Variante
$suchwort=$_POST[suche];

function 
sonderzeichen($string)
{
 
$string strtolower($string);
 
$string str_replace("ä""ae"$string);
 
$string str_replace("ü""ue"$string);
 
$string str_replace("ö""oe"$string);
 
$string str_replace("ß""ss"$string);
 
$string str_replace("´"""$string);
 
$string preg_replace('/\s/'''$string);
 
$string preg_replace('/\!/'''$string);
 
$string preg_replace('/\-/'''$string);
 
$string preg_replace('/\./'''$string);
 return 
$string;
}

//$lines = file($datei);

if(!empty($suchwort)){
$len=strlen($suchwort);
if(
$len<=2){
echo
'<blockquote>Das Suchwort muss mindestes 3 Zeichen haben!<br><br>
 >> <a href="javascript:history.back()">zurück zur Sucheingabe</a> <<</blockquote>'
;
exit;
}

$string=$suchwort;
$suchwortsonderzeichen($string);

###############################################################################
//Zähler für die Übersicht über die gefundenen Einträge

$zahl="1";
        foreach(
$lines as $line) {
        
$arr2 explode("-",$line);
        
$string=$arr2[0];
        
$textsonderzeichen($string);
        if(
strstr($text$suchwort)){
            
$zahl++;
        }
    }
    
$zahl=$zahl-1;
#########################################################################
//Ausgabe der gefundenen Einträge!!!
//$zahl=$zahl-1;
echo'<center>>><a href="#suche">zur Suche 
springen</a><<</center><br><br><font color="#FFFFFF">
Es wurden <font color="#FF0000" size="3">'
.$zahl.'</font>
 
Einträge gefunden, die den Begriff
<font color="#FF0000" size="3">'
.$suche.'</font> 
enthalten!</font><br><br>'
;

###################################################################################
//Die eigentliche Suche und anschliessende Ausgabe der Ergebnisse
$i=1;
        foreach(
$lines as $line) {
        
$arr explode("-",$line);
        
$string=$arr[0];
        
$textsonderzeichen($string);
        if(
strstr($text$suchwort)){
            echo 
'<font color="#FFFFFF">#'.$i.'&nbsp;-&nbsp;'.$line.'</font><br>';
            
$i++;
        }
    }
}

########################################################################
//Suchfeld
echo'
<a name="suche"></a><br>
<form action="liste.php" method="post">
<table border="0" cellpadding="0" cellspacing="5" bgcolor="#333333">
  <tr>
    <td><b><font color="#FFFFFF">Nach Interpreten suchen:</font></b></td>
  </tr>
  <tr>
    <td><input name="suche" type="text">&nbsp;&nbsp;<input 
name="suchen" type="submit" value="suchen"></td>
  </tr>
</table><br>
</form>
'
;

######################################################################################
//Liste aller Einträge in der playlist.txt wird erstellt
if($liste==ja){
//$handle=fopen($datei, "r");
    
$i 1;
        while(!empty(
$array[$i])){

            echo
'#&nbsp;'.$i.'<b>&nbsp;-&nbsp;</b>'.$array[$i].'<br>';
            
$i++;
    }
}
?>
EDIT:
by TobiaZ: Auch du kannst wohl deinen Code umbrechen!
__________________
Wer brauch schon ne Signatur?

Geändert von TobiaZ (03-06-2005 um 18:37 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 03-06-2005, 18:39
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

ansatz: du kannst schon beim auslesen die ergebnisse filtern.

Ne Textdatei mit 40.000 einträgen ist wohl ohnehin etwas krass, oder meinst du nicht? hast du nicht die möglichkeit auf eine andere DB umzusteigen?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3 (permalink)  
Alt 03-06-2005, 18:44
Sardine
 Newbie
Links : Onlinestatus : Sardine ist offline
Registriert seit: Apr 2004
Ort: Pazifischer Ozean
Beiträge: 44
Sardine ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Klar ich könnte schon vorher filtern, aber dann geht die Übersichtsliste verloren!
Und genau das will ich ja vermeiden.

Thema DB, daran hab ich auch schon gedacht, aber die txt in die DB einzulesen kann zum Problem werden bei 40000 Einträgen oder?
__________________
Wer brauch schon ne Signatur?
Mit Zitat antworten
  #4 (permalink)  
Alt 03-06-2005, 18:46
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Klar ich könnte schon vorher filtern, aber dann geht die Übersichtsliste verloren!
verstehe ich nicht? hab mir aber auch vertsändlicherweise nicht deinen ganzen code angesehen?

Zitat:
Thema DB, daran hab ich auch schon gedacht, aber die txt in die DB einzulesen kann zum Problem werden bei 40000 Einträgen oder?
Was ist das für ein schwachsinn? Wenn du der meinung bist, du könntest es dem user zumuten 40.000 einträge bei jedem aufruf(!) auszulesen, dann kannst du wohl locker mal eben 40.000 einträge auf eine andere db übertragen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #5 (permalink)  
Alt 03-06-2005, 18:52
Sardine
 Newbie
Links : Onlinestatus : Sardine ist offline
Registriert seit: Apr 2004
Ort: Pazifischer Ozean
Beiträge: 44
Sardine ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, das ist natürlich ein Argument!
Bin auch schon dabei die Daten in ne DB zu schreiben, bin mal gespannt wie die das verkraftet!

Aber nochmal zum Auslesen: Das soll eben eine übersichtsliste über die Titel eines Radiomoderators werden, und da ist es nötig, dass sich die Gäste alle Titel anschauen können, und über die Suchfunktion sollen sie zusätzlich die Möglichkeit haben, nach einem bestimmten Interpreten zu suchen!
__________________
Wer brauch schon ne Signatur?
Mit Zitat antworten
  #6 (permalink)  
Alt 03-06-2005, 18:54
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Bin auch schon dabei die Daten in ne DB zu schreiben, bin mal gespannt wie die das verkraftet!
Wenn deine Text-DB das verkraftet, wird eine mysql-DB das 10 mal verkraften! Glaub mir!

Zitat:
Aber nochmal zum Auslesen: Das soll eben eine übersichtsliste über die Titel eines Radiomoderators werden, und da ist es nötig, dass sich die Gäste alle Titel anschauen können, und über die Suchfunktion sollen sie zusätzlich die Möglichkeit haben, nach einem bestimmten Interpreten zu suchen!
Hört sich gut an, und jetzt?
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 03-06-2005, 18:58
Sardine
 Newbie
Links : Onlinestatus : Sardine ist offline
Registriert seit: Apr 2004
Ort: Pazifischer Ozean
Beiträge: 44
Sardine ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja,ja
ich bau mir gerade die Datei ja so um, dass ich sie in eine DB einlesen kann.

Dann komm ich schon klar damit!

muss eben testen, wie schnell die DB dann die Ausgabe und die Suche ausführt!

DANKE auf jeden Fall mal!
__________________
Wer brauch schon ne Signatur?
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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

18.03.2021 Berni | Kategorie: PHP/ Anzeigenmarkt
Modelmanager 2

Der Modelmanager 2 kann als komplette Webseite oder als Webtool in einem eigenen Verzeichnis Installiert werden, so ist dieser auch sehr Flexibel einsetzbar.

17.03.2021 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

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