[PHP] Onzichtbare newline?

Pagina: 1
Acties:

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Ik ben een script aan het fixen dat een M3U file in je DB gooit. Dit komt eerst nog te staan in een text veld. Hier een klein gedeelte van die code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
    if ($m3u_file_type == "audio/mpegurl") {
       $data = fread(fopen($m3u_file,  "r"), filesize($m3u_file));
       $i_1 = explode("#EXTINF:", $data);
       $rows_1 = count($i_1);
       for ($i = 1; $i <= $rows_1; $i++) {
           $i_2 = explode(",", $i_1[$i]);
           $i_3 = str_replace("\n", "[i]", $i_2[1]);
           $i_4 = explode("[i]", $i_3);
           $i_2[1] = str_replace("\n". $i_4[1] ."\n", "", $i_2[1]);
           $dur1 = $i_2[0] / 60;
           $dur2 = floor($dur1);
           $dur3 = $dur1 - $dur2;
           $dur4 = 60 * $dur3;
           $tmp = strlen($dur4);
           if ($tmp == 1) {
               $dur4 = "0$dur4";
           }
           elseif ($tmp == 0) {
               $dur4 = "00";
           }
           $dur = "[$dur2:$dur4]";
           if ($i_2[1] != "") echo "$i. $i_2[1] $dur";
       }
    }
?>

De M3U file wordt dus geopend, en er worden overbodige dingen verwijderd. In het text veld komt het er dan zo uit te zien:
code:
1
2
1. Artiest - Titel
 [1:00]

Maar ik wil dat er geen enter komt te staan tussen de regel met Artiest - Titel en de lengte van de track. Ik kan de '\n' er ook niet uit vissen net 'str_replace'.

Weten jullie hoe ik dit kan oplossen?

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Probeer eens duidelijke namen voor je variabelen te gebruiken, want ik kan nou niet zien of je wat met die tijdvar doet.

edit: en zit je \n in je 1e, 2e of 3e var.

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Nou ja, ik weet 1 ding, dat er een ontzichtbare '\n' zit in '$i_2[1]'. Dit variable moet 'Artiest - Titel' bevatten...

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

hmm ik kan gewoon \n's wissen met str_replace("\n", '', $string);

Anders misschien nl2br en dan die BR wissen?

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Op maandag 24 december 2001 11:50 schreef Zoijar het volgende:
hmm ik kan gewoon \n's wissen met str_replace("\n", '', $string);

Anders misschien nl2br en dan die BR wissen?
Heb ik al geprobeerd...

Verwijderd

Filter direct na het lezen (fread) de \r en \n er uit dmv str_replace.

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Op maandag 24 december 2001 11:57 schreef Zef het volgende:
Filter direct na het lezen (fread) de \r en \n er uit dmv str_replace.
Werkt ook niet |:(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

ontzichtbare is geen nederlands, dus ik heb er maar even onzichtbare van gemaakt ;)

Werkt: str_replace("\n", "", $string); en str_replace("\r", "", $string); samengevoegd ook niet?

Wat je precies met je str_replaces probeert te doen weet ik niet, maar het ziet er wat vreemd uit in je code.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

wat een weirde zooi heb je gemaakt. laat eens zien wat je input is?

Klaar voor een nieuwe uitdaging.


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

probeer anders ereg_replace()

All my posts are provided as-is. They come with NO WARRANTY at all.


  • RolandWitvoet
  • Registratie: Maart 2001
  • Niet online
misschien heb je te maken met \r \f ipv \n? escape de input of output eens en kijk eens of je wel echt met \n te maken hebt..

NE2000 3-9 augustus, Elburg Open-air lan-party, 5 jaar alweer! Computers, kamperen, kampvuur, activiteiten, schier-eiland, dropping, tap-eiland, lezingen, workshops, bands, gezelligheid. NE2000, de andere Lanparty


Verwijderd

no offence maar met die spagetti vraag je om dergelijke dingen, je hebt wel enorm onduidelijk lopen proggen imho

  • AK47
  • Registratie: Juli 2001
  • Laatst online: 04-05-2024
Mhh, sorry van de onduidelijke code, maar ik prog het voor mezelf. Verder is de input een M3U file.
Ik jullie voorstellen ff proberen als ik thuis kom, ik zit nu namelijk op mijn werk :P

  • cobratbq
  • Registratie: Maart 2001
  • Laatst online: 17-12-2015
Je zou ook de bron code van de door de "PHP compiler" gecreërde website door kunnen lezen en dan vergelijken. I.p.v. de PC te laten rekenen voer je zelf alle stapjes uit.
Dat wil nog wel eens helpen aangezien je er anders nogal snel overheen kijkt

Succes

One ring to rule them all, one ring to find them, one ring to bring them all, and in darkness bind them...


Verwijderd

Op maandag 24 december 2001 12:55 schreef CyB3R het volgende:
probeer anders ereg_replace()
preg_replace() is vaak sneller

+ als je gewone strings moet replacen altijd str_replace gebruiken, gaat pakken sneller.

  • Apache
  • Registratie: Juli 2000
  • Laatst online: 14-09 22:46

Apache

amateur software devver

If it ain't broken it doesn't have enough features

Pagina: 1