login  Naam:   Wachtwoord: 
Registreer je!
 Forum

eregi_replace

Offline delta_004 - 15/04/2006 20:11
Avatar van delta_004Onbekend Hallo
Ik heb een bestand met een lijst van mp3tjes

Die ziet er als volgt uit:
  1. <song path="G://Bomfunk MC's - Freestyler2.mp3" title="Bomfunk MC's - Freestyler2.mp3" /><song path="G://Danzel - Pump It Up.mp3" title="Danzel - Pump It Up.mp3" />
  2. <song path="G://Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3" title="Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3" />

Enz.

Hoe kan ik nu alles dat tusse title="" staat weergeven.

Groetjes

10 antwoorden

Gesponsorde links
Offline kokx - 15/04/2006 20:17 (laatste wijziging 15/04/2006 20:18)
Avatar van kokx Onbekend Ik weet niet hoe dat met eregi_replace gaat. Ik doe het dus even met preg_replace.
  1. <?php
  2. $string = "<song path=\"G://Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3\" title=\"Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3\" />";
  3.  
  4. $string = preg_replace("#<song path=\".*?\" title=\"(.*?)\">#si", "\\1", $string);
  5. echo $string; //output: Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3
  6. ?>
Offline delta_004 - 15/04/2006 20:18
Avatar van delta_004 Onbekend Dan geeft die gewoon niks. Maar het zijn er meer dan 2 he. Dus ik moet ze van ze allemaal zodat ik kan zien wat de huide afspeellijst is
Offline Gerard - 15/04/2006 20:20
Avatar van Gerard Ouwe rakker als alle songs op een nieuwe regel staan zou je de file regel voor regel kunnen doorlopen en daarna met preg_match() de titels eruit kunnen trekken.
Offline delta_004 - 15/04/2006 20:21
Avatar van delta_004 Onbekend maar hoe dan? Wie zouw aub voorbeeldje wille make?
Offline kokx - 15/04/2006 20:24
Avatar van kokx Onbekend Er zat een foutje in. Heb het even aangepast:
  1. <?php
  2. $string = "<song path=\"G://Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3\" title=\"Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3\" />";
  3.  
  4. $string = preg_replace("#<song path=\".*?\" title=\"(.*?)\" />#si", "\\1", $string);//ik was hier ' /' vergeten
  5. echo $string; //output: Dj_Rimi_-_Multimix_0005_-_Party_Vol_2.mp3
  6. ?>
Offline delta_004 - 15/04/2006 20:25
Avatar van delta_004 Onbekend Dankjewel nu kom ik wel verder
Offline Gerard - 15/04/2006 20:27 (laatste wijziging 15/04/2006 20:28)
Avatar van Gerard Ouwe rakker Functies die je nodig hebt om het bestand in te laden en volledig te doorlopen:

file()
File laad een hele file in en zet elke regel van het bestand in een nieuw element in een array

preg_match()
Met preg match is het mogelijk om reguliere expressies te gebruiken om bepaalde elementen van een string eruit te halen. Dit werkt iets anders dan eregi_replace omdat je met preg_match de gevonden results (dat wat je matcht) teruggeeft naar een variabele in plaats van vervangen.
Offline timo - 15/04/2006 22:04
Avatar van timo PHP ver gevorderde je kan file() gebruiken en dan een foreach($rule AS $curr)
{
$curr = preg....
Offline kokx - 15/04/2006 22:24 (laatste wijziging 15/04/2006 22:24)
Avatar van kokx Onbekend @timo: Dat is niet nodig. Bij preg_replace kan je ook array's als waarden ingeven.
Offline Richard - 16/04/2006 08:51
Avatar van Richard Crew algemeen @kokx: ga toch maar eerst even regexes leren, je doet veel te 'relaxed' over de betekenissen van de keywords. je gebruikt bijvoorbeeld de . veel te veel. Een bestandsnaam kan eigelijk wel aan alles voldoen, maar aangezien ze tussen "" staan, betekent dat dat je niet moeilijk hoeft te doen, en weet dat er geen " in de titel voor mag komen:

  1. ~<song path="[^"]+" title="([^"]+)" />~i


daarnaast is die 's' modifier bij jou onnodig, aangezien je geen newlines MAG matchen (niet toegestaan in HTML).

En daar nog weer naast: lees de manual op de volgende site COMPLEET door: http://www.regular-expressions.info
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s