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 06-12-2005, 23:40
scriptmaus
 Newbie
Links : Onlinestatus : scriptmaus ist offline
Registriert seit: Nov 2005
Beiträge: 22
scriptmaus ist zur Zeit noch ein unbeschriebenes Blatt
Unhappy [PHP5] Problem mit foreach-schleifen ausgaben

Hallöchen,
ich habe hier ein kleines Problem mit dem Parsen eines files.:

hier mal das script:
PHP-Code:
<?php

$links 
file_get_contents("file.pls");

$preg_1 '/\s+File([0-9]{1,2})=([0-9]{1,2}) - ([a-z].{1,50})/i';
$preg_2 '/\s+Title([0-9]{1,2})=([a-z].{1,50})/i';
$preg_3 '/\s+Length([0-9]{1,2})=([0-9]{1,10})/i';

function 
filtern($links,$preg_1,$preg_2,$preg_3) {
$ausgabe '';

  
preg_match_all($preg_1,$links,$matches_1,PREG_SET_ORDER);
  
preg_match_all($preg_2,$links,$matches_2,PREG_SET_ORDER);
  
preg_match_all($preg_3,$links,$matches_3,PREG_SET_ORDER);

  foreach(
$matches_1 as $match_1)
  
$ausgabe .= 'File'.$match_1[1].'='.$match_1[2].' - '.$match_1[3].'<br>';
  foreach(
$matches_2 as $match_2)
  
$ausgabe .=  'Title'.$match_2[1].'='.$match_2[2].'<br>';
  foreach(
$matches_3 as $match_3)
  
$ausgabe .=  'Length'.$match_3[1].'='.$match_3[2].'<br>';

  return 
$ausgabe;
}

echo 
filtern($links,$preg_1,$preg_2,$preg_3);

?>
Ausgelesen wird ein Playlistfile dessen Daten erstmal nur ganz Stinknormal angezeigt werden sollen.

Bisher klappt das auch Super nur wie bekomme Ich es am sinnvollsten hin das die Ausgaben wie folgt abgearbeitet und Ausgegeben werden:

File1=01 - Deathrider.mp3
Title1=Anthrax - Deathrider
Length1=184
File2=02 - Metal Thrashing Mad.mp3
Title2=Anthrax - Metal Thrashing Mad
Length2=168
...


momentan schaut es nämlich so aus:
File1=01 - Deathrider.mp3
File2=02 - Metal Thrashing Mad.mp3
...
Title1=Anthrax - Deathrider
Title2=Anthrax - Metal Thrashing Mad
...
Length1=184
Length2=168
Length3=327
...

...da ich ja alles hintereinander anhänge ($ausgabe .= '' ich weiß aber nicht wie ich es sonst machen soll :-/

Ich komme mit dem verschachteln der foreach schleifen irgendwie noch nicht so zurecht.

PS: Das ganze kann auch mit fopen realisiert werden ick wees, aber es diente atm eher als Übung mich mehr mit Regulären Ausdrücken auseinanderzusetzen



LG
Mausi

Geändert von scriptmaus (06-12-2005 um 23:43 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 07-12-2005, 07: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

Wo sind deine Ansätze??

Zitat:
Ich komme mit dem verschachteln der foreach schleifen irgendwie noch nicht so zurecht.
Kein Problem, es existieren schließlich keine.
__________________
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 07-12-2005, 08:13
scriptmaus
 Newbie
Links : Onlinestatus : scriptmaus ist offline
Registriert seit: Nov 2005
Beiträge: 22
scriptmaus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wo sind deine Ansätze??
Meine Ansätze sind die wie folgt oben Beschrieben, ich will eine *.pls Datei auslesen und am liebsten mit preg_match_all die ersten 3 Zeilen auslesen und ausgeben, aber da ich das nicht hinbekommen habe habe ich es wie oben im Quellcode zu sehen mal so versucht.

Zitat:
Kein Problem, es existieren schließlich keine.
Bitte ?
nur weil ich die foreach schleife nicht wie folgt formuliert habe?

PHP-Code:
foreach($matches_1 as $match_1){
$ausgabe .= 'File'.$match_1[1].'='.$match_1[2].' - '.$match_1[3].'<br>';

Wie schon erwähnt bin ich mir bez. des Aufbaus dieser abfrage unsicher daher habe ich auch hier mal um Hilfe gebeten.



LG
Mausi
Mit Zitat antworten
  #4 (permalink)  
Alt 07-12-2005, 08:18
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

welch forscher ton am frühen morgen.

Zitat:
Meine Ansätze sind die wie folgt oben Beschrieben,
Keine? Du beschreibst lediglich, was du willst. Nicht, was du wie versucht hast und woran es gescheitert ist. Sieht bis jetzt nach ner Projekthilfe aus. *verschieb*

Zitat:
Bitte ?
nur weil ich die foreach schleife nicht wie folgt formuliert habe?
Nur weil du (? ) sie nacheinander(!) formuliert hast und die Kurzschreibweise verwendest hast, handelt es sich deswegen noch lange nicht um verschachtelte foreachs
__________________
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 07-12-2005, 08:54
scriptmaus
 Newbie
Links : Onlinestatus : scriptmaus ist offline
Registriert seit: Nov 2005
Beiträge: 22
scriptmaus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
welch forscher ton am frühen morgen.
tja. RESONANZ ist das Zauberwort bei der Sache nech ;-)

Zitat:
Keine? Du beschreibst lediglich, was du willst. Nicht, was du wie versucht hast und woran es gescheitert ist. Sieht bis jetzt nach ner Projekthilfe aus. *verschieb*
Wie du "eigentlich" oben sehen kannst habe ich via Quellcode gezeigt was ich versucht habe und woran es gescheitert ist.

Aber nochmal für dich zum Mitschreiben:
=> Ich will die drei ausgelesenen Zeilen direkt untereinander ausgeben lassen.
=> Dies funktioniert nicht weil ich das nur so hinbekomme das jeweils alle komplett abgearbeiteten Zeilen sich untereinander reihen:


So ist es momentan:
File1=01 - Deathrider.mp3
File2=02 - Metal Thrashing Mad.mp3
...
Title1=Anthrax - Deathrider
Title2=Anthrax - Metal Thrashing Mad
...
Length1=184
Length2=168
Length3=327
...

...und so würde ich es gerne haben:
File1=01 - Deathrider.mp3
Title1=Anthrax - Deathrider
Length1=184
File2=02 - Metal Thrashing Mad.mp3
Title2=Anthrax - Metal Thrashing Mad
Length2=168
...

Zitat:
Nur weil du (? ) sie nacheinander(!) formuliert hast und die Kurzschreibweise verwendest hast, handelt es sich deswegen noch lange nicht um verschachtelte foreachs
Mag sein das das rein (PHP Scripttechnisch) der falsche Ausdruck für das war was ich hier gemacht habe (verschachtelt) trotzalledem kann man wenn man es ja weiß lieber mal lösungsansätze bieten als plumpe "Schlauberger Sprüche" abzuliefern, denn damit ist mir nicht geholfen.



LG
Mausi
Mit Zitat antworten
  #6 (permalink)  
Alt 07-12-2005, 10:19
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

Was soll ich mich mit dir rumärgern, wenn du statt 3 schleifen nur eine benutzen würdest, hast du das problem.

dein code zeigt in keiner weise, dass du logisch versucht hast, dein ziel umzusetzen. lediglich, dass du einen (bereits fertigen) code nicht anpassen kannst oder es versucht hast.
__________________
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 07-12-2005, 10:25
scriptmaus
 Newbie
Links : Onlinestatus : scriptmaus ist offline
Registriert seit: Nov 2005
Beiträge: 22
scriptmaus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Was soll ich mich mit dir rumärgern, wenn du statt 3 schleifen nur eine benutzen würdest, hast du das problem.
ist ok schreib lieber nix mehr als nur so dummes zeug wenn du eh nicht vor hast zu helfen.

Zitat:
dein code zeigt in keiner weise, dass du logisch versucht hast, dein ziel umzusetzen. lediglich, dass du einen (bereits fertigen) code nicht anpassen kannst oder es versucht hast.
Entschuldige bitte das ist mein eigener code den habe ich geschrieben und nicht runtergeladen und angepasst also spar dir deine peinlichen versuche hier übertrumpfen zu wollen mit deinem achsotollen wissen.

ich erwarte hier hilfe und nicht dumme sprüche, wie schonmal gesagt ist mir damit nicht geholfen.




LG
Mausi
Mit Zitat antworten
  #8 (permalink)  
Alt 07-12-2005, 10:29
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

OffTopic:
hab dir nen ansatz geliefert, mehr bin ich in diesem fall aber in der tat nicht gewillt zu helfen.
__________________
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
  #9 (permalink)  
Alt 07-12-2005, 10:31
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Lass dir vor dem ersten foreach mal alle drei Arrays mit print_r ausgeben.
Stehen die zusammengehörigen Daten immer am selben Index?

Wenn ja, schau dir mal die Syntax von foreach an, da gibt's nämlich noch eine zweite Möglichkeit, wie man das nutzt.
Mit dieser Möglichkeit kriegst du zusätlich noch den Index und kannst dann mit einem foreach über $matches auf die entsprechenden Einträge in $matches2 und $matches3 zugreifen
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #10 (permalink)  
Alt 07-12-2005, 12:11
scriptmaus
 Newbie
Links : Onlinestatus : scriptmaus ist offline
Registriert seit: Nov 2005
Beiträge: 22
scriptmaus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Huhu mrhappiness,
erstmal thx für die nette Antwort

mit print_r bekomme ich wie gewohnt folgende ausgabe präsentiert:
PHP-Code:
Array (
        [
0] => File1=01 Deathrider.mp3
        
[1] => 1
        
[2] => 01
        
[3] => Deathrider.mp3
      
)

Array (
        [
0] => File2=02 Metal Thrashing Mad.mp3
        
[1] => 2
        
[2] => 02
        
[3] => Metal Thrashing Mad.mp3
      
)
... 
Wie könnte ich denn nun am besten via preg_match_all den Regulären-Ausdruck so erweitern das ich die ersten 3 zeilen...
PHP-Code:
File1=01 Deathrider.mp3
Title1
=Anthrax Deathrider
Length1
=184 
... in einem durchlauf auslesen kann?

hab mich heute morgen schonmal mit folgendem bsp aus dem manual vertraut gemacht:

PHP-Code:
$arr = array("eins""zwei""drei");
reset ($arr);
while (list(
$key$value) = each ($arr)) {
   echo 
"Schlüssel: $key; Wert: $value<br />\n";
}

foreach (
$arr as $key => $value) {
   echo 
"Schlüssel: $key; Wert: $value<br />\n";

Aber irgendwie will das nicht mit meinem obigen bsp. hinhauen, wenn ich gleich wieder zuhause bin poste ich mal beim bsp. von heute Morgen zur begutachtung


LG
Mausi
Mit Zitat antworten
  #11 (permalink)  
Alt 07-12-2005, 12:23
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Was gibt
PHP-Code:
foreach($matches_1 as $key => $match_1) {
  
$ausgabe .= 'File'.$match_1[1].'='.$match_1[2].' - '.$match_1[3].'<br>';
  
$ausgabe .=  'Title'.$matches_2[$key][1].'='.$matches_2[$key][2].'<br>';
  
$ausgabe .=  'Length'.$matches_3[$key][1].'='.$matches_3[$key][2].'<br>';

aus?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #12 (permalink)  
Alt 07-12-2005, 12:32
scriptmaus
 Newbie
Links : Onlinestatus : scriptmaus ist offline
Registriert seit: Nov 2005
Beiträge: 22
scriptmaus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Juchu es hat geklappt *gggg*
danke danke danke

Ich hatte eigentlich den selben Ansatz wie du gehabt nur habe ich versucht weiterhin für jede Zeile eine foreach-schleife einzuleiten *klatsch*

danke nochmals mrhappiness



LG
Mausi
Mit Zitat antworten
  #13 (permalink)  
Alt 07-12-2005, 13:43
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Deswegen habe ich ja
Zitat:
Original geschrieben von mrhappiness
und kannst dann mit einem foreach über $matches auf die entsprechenden Einträge in $matches2 und $matches3 zugreifen
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
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

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

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

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