SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 18.03.2013, 20:26:32
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
txt-Datei einlesen und String ausgeben

Hallo an alle ;-) !

Ich möchte eine txt-Datei einlesen, diese nach einem String ";+ -" durchsuchen und die Zeile in der dieser String vorkommt sowie die folgenden 4 Zeilen ausgeben.

Hier mein Versuch:

PHP-Code:
<?php
$lines 
file('http://www.webseite.com/test/test.txt');
$searchstr ';+ -';
foreach (
$lines as $line)
{
  if(
strpos($line$searchstr) !== false)
  {
    
$results[] = $line;
  }
}
echo 
'<pre>';
print_r($results);
echo 
'</pre>';
?>

Die txt-Datei sieht z.B. so aus:

Code:
;*+-aaaaaa
bbbbb
ccccccc
ffff
asfasfasfafafaf
sdgsdgsgs
gsgsgsgsdgsd235235fs
sgsgsgsgsg
;+ - 2222222222aaaaaa
bbbbb
cccccccgggg
gsgsdgsdg
Wie aber schaffe ich es, dass nicht nur die erste Zeile, sondern eben auch die folgenden 4 Zeilen ausgegeben werden?

Danke schon jetzt für eure Mühe!
Mit Zitat antworten
  #2  
Alt 19.03.2013, 09:03:51
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
Ckaos befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Hi

PHP-Code:
<?php
$lines 
file('http://www.webseite.com/test/test.txt');
$searchstr ';+ -';
$next_lines 0;
foreach (
$lines as $line)
{
  if(
strpos($line$searchstr) !== false || ($next_lines>&& $next_lines<5))
  {
    
$results[] = $line;
    
$next_lines++;
  }
  
//Falls es weitere Zeilen geben sollte ;)
  
if($next_lines==5){
     
$next_lines=0;
  }
}
echo 
'<pre>';
print_r($results);
echo 
'</pre>';
?>
ungetestet!

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #3  
Alt 02.04.2013, 16:38:43
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Hey VIELEN Dank! Funktioniert super!

Sorry für die späte Antwort...

Ich bin soweit gekommen, habe aber am Wochenende etwas Zeit (Dank an den Osterhasen) gehabt und finde DEINE Lösung um einiges besser und übersichtlicher.

Der Vollständigkeit halber mein Lösungsweg:

PHP-Code:
<?php
$lines 
file('http://www.abdce.de/test/test.txt');
$searchstr ';+ -';

$k 0;
for (
$i 0$i sizeof($lines); $i++)
{
// k groesser 0 und kleiner 4
if (0)
{
$results[] = $line;
}

if(
strpos($line$searchstr) !== false)
{
$results[] = $line;
$k++;
}
if (
$k == 4)
{
$k 0;
}
}

echo 
'<pre>';
print_r($results);
echo 
'</pre>';
?>
Vielen Dank noch einmal! Werde mich gleich mit einer Ergänzung melden ;-)
Mit Zitat antworten
  #4  
Alt 02.04.2013, 16:56:49
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

So, da bin ich auch schon wieder ;-) !

Folgende zwei Möglichkeiten wären jetzt noch klasse... und zwar:

1. Wie lese ich z.B. immer die ersten 15 Zeilen einer Datei ein und gebe diese als "Kopf" vor den restlichen Daten aus?

und

2. Aktuell gebe ich ja alle Zeilen, die mit ";+ -" beginnen aus. Wie kann ich nach jeder Zeile eine Zeile mit folgendem Inhalt ausgeben - z.B.: "abcd_____1234 qwer----"

Beispiel - aktuell:
;+ - Ich bin ein Text
;+ - ...und ich auch
;+ - und hier ist noch viel mehr
;+ - ja... und jetzt wirds nervig ;-)

Beispiel NACH Änderung:
;+ - Ich bin ein Text
abcd_____1234 qwer----
;+ - ...und ich auch
abcd_____1234 qwer----
;+ - und hier ist noch viel mehr
abcd_____1234 qwer----
;+ - ja... und jetzt wirds nervig ;-)
abcd_____1234 qwer----


Ich hoffe meine Infos sind nicht zu verwirrend und verständlich.

Vielen Dank vorab an alle die sich die Mühe machen hier vorbeizuschauen ... Danke auch nochmal an Ckaos

:)
Mit Zitat antworten
  #5  
Alt 03.04.2013, 11:25:10
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Hi!

Also den ersten Punkt bezüglich der Ausgabe des "Datei-Kopfes" mit den 15 Zeilen habe ich hinbekommen - hier der Code für alle die es interessiert:

PHP-Code:
$thisFileContent file("pfad-zu-txt-datei/blabla.txt"); 
for(
$i=0$i<16$i++){
   echo 
$thisFileContent[$i]; 

Aber wie kann ich jetzt nach jeder Zeile folgendes Ausgeben:

" abcd_____1234 qwer----"

Hmm...
Mit Zitat antworten
  #6  
Alt 03.04.2013, 11:50:47
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
Ckaos befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Hi,

wenn ich die Frage richtig verstehe einfach so :?
PHP-Code:
<?php
$lines 
file('http://www.abdce.de/test/test.txt');
$searchstr ';+ -';

$k 0;
for (
$i 0$i sizeof($lines); $i++)
{
// k groesser 0 und kleiner 4
if (0)
{
$results[] = $line;//Hier fehlt doch welche line oder?
}

if(
strpos($line$searchstr) !== false)
{
$results[] = $line;//und hier doppelt?
$k++;
}
if (
$k == 4)
{
$k 0;
}
$results[] = " abcd_____1234 qwer----";
}

echo 
'<pre>';
print_r($results);
echo 
'</pre>';
?>
mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #7  
Alt 03.04.2013, 12:57:08
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Ahh cool , Danke!


ABER Deine Lösung finde ich besser, habe bei deinem Code jetzt folgendes hinzugefügt:

PHP-Code:
  {   
    
$results[] = $line '<pre>' .  ' abcd_____1234 qwer----' '<pre>'
    
$next_lines++; 
  } 
Ist doch auch OK - oder? Zumindest funktioniert es ;)

Schaue jetzt noch wie ich die Ausgabe OHNE "Array" machen kann, also ohne "print_r"... da die Infos wie "
Array
(
[0] =>"
...

wenig interessieren...
Mit Zitat antworten
  #8  
Alt 03.04.2013, 13:10:53
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Also die Punkte funktionieren soweit > ich als php-Anfänger bin zumindest sehr zufrieden :) .

Interessant wäre jetzt noch folgendes als Ergänzung zu DEINEM Script:

Aktuell werden ja nach jedem gefunden ";+ -" die folgenden 4 Zeilen ausgegeben.
Wie kann ich aber folgendes realisieren:

Ich möchte nur die zeile mit ";+ -" ausgeben, und NUR wenn am Zeilen-Ende ein "---" erscheint auch die folgende Zeile...

Also NICHT immer pauschal alle 4 Zeilen ab ";+ -".

Je länger ich hier etwas übe, desto bekloppter werden meine Ideen ;) ...

Danke für deine Mühe und Geduld Ckaos
Mit Zitat antworten
  #9  
Alt 03.04.2013, 13:33:11
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

Zitat:
Zitat von fmnix Beitrag anzeigen
Schaue jetzt noch wie ich die Ausgabe OHNE "Array" machen kann, also ohne "print_r"... da die Infos wie "
Array
(
[0] =>"
...

wenig interessieren...
Ist folgender Code "sauber" programmiert? Es Funktioniert auf jeden Fall, aber ich möchte wissen ob das auch OK so ist ;) :

ALTE Ausgabe:

PHP-Code:
echo '<pre>'
print_r($results); 
echo 
'</pre>'
NEUE Ausgabe:

PHP-Code:
$anzahl count($results);
for(
$i=0$i<$anzahl$i++){    
echo 
'<pre>'
print_r($results[$i]); 
echo 
'</pre>'

Mit Zitat antworten
  #10  
Alt 04.04.2013, 15:33:49
fmnix fmnix ist offline
Anfänger
 
Registriert seit: Mar 2013
Beiträge: 9
fmnix befindet sich auf einem aufstrebenden Ast
AW: txt-Datei einlesen und String ausgeben

So... nur für den Fall das der letzte, offene Punkt hier im Thread übersehen wird ;-) :

Was muss hier ergänzt werden:

PHP-Code:
$lines file('http://www.webseite.com/test/test.txt');
$searchstr ';+ -';
$next_lines 0
foreach (
$lines as $line)
{
  if(
strpos($line$searchstr) !== false || ($next_lines>&& $next_lines<5))
  {
    
$results[] = $line;
    
$next_lines++;
  }
  
//Falls es weitere Zeilen geben sollte ;)
  
if($next_lines==5){
     
$next_lines=0;
  }

Aktuell werden ja nach jedem gefunden ";+ -" die folgenden 4 Zeilen ausgegeben.
Wie kann ich aber folgendes realisieren:

Ich möchte nur die zeile mit ";+ -" ausgeben, und NUR wenn am Zeilen-Ende ein "---" erscheint auch die folgende Zeile, bis kein "---" mehr am Zeilenende steht.

Also NICHT immer pauschal alle 4 Zeilen ab ";+ -".

Bin schon fleißig am "wurschteln" aber als Anfänger doch leicht überfordert... Danke für die Hilfe ;-) !
Mit Zitat antworten
Antwort

Stichworte
ausgeben, einlesen, php, string, txt


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datei zeilenweise einlesen und in html-Tabelle ausgeben chriscolm PHP Grundlagen 1 15.02.2006 00:06:22
Inhalt einer Datei ab einem Fixpunkt einlesen rkersting PHP für Fortgeschrittene und Experten 11 21.03.2005 13:52:47
einlesen und ausgeben externer datei kockmilch PHP für Fortgeschrittene und Experten 3 11.10.2004 12:36:31
unterschiedliche string aus Datei einlesen kelea PHP Grundlagen 5 17.05.2004 13:03:09
Datei in Formular einlesen und ausgeben hardcorecologne PHP Grundlagen 11 07.03.2004 10:42:40


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


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


© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt