PHP ereg() to preg_match()

micronix

Mitglied
Hallo ich brauche hilfe
und zwar möchte ich folgende funktionen in ein neues format übertragen.

ereg() zu preg_match() weil ab php 5.3 warungen angezeigt werden die nicht so schön aussehen.

hier die funktionen
PHP:
ereg( 'Unknown format', $output, $args)

ereg( 'video:([0-9]+)kB audio:([0-9]+)kB global headers:[0-9]+kB muxing overhead', $output, $args )

ereg( '(frame=([^=]*) fps=[^=]* q=[^=]* L)?size=[^=]*kB time=([^=]*) bitrate=[^=]*kbits/s[^=]*$', $output, $args )

ereg( "Input #0, ([^ ]+), from", $output, $args )

ereg( 'Video: ([^ ]+), ([^ ]+), ([0-9]+)x([0-9]+)( \[PAR ([0-9]+):([0-9]+) DAR ([0-9]+):([0-9]+)\])?', $output, $args )

ereg( "Audio: ([^ ]+), ([0-9]+) Hz, ([^\n,]*)", $output, $args )


Wäre euch sehr dankbar weil ich verzweifle mittlerweile daran habe alles probiert..

Liebe Grüße
Sascha
 
Hi,

ich glaub du solltest das fast genauso übernehmen können. Nur das du deine Regexpressions mit einem "/" (Slash) beginnen und beenden musst.

Hab hier mal ein Beispiel gemacht:

PHP:
<?php
// The old ereg:
// ereg( 'video:([0-9]+)kB audio:([0-9]+)kB global headers:[0-9]+kB muxing overhead', $output, $args )

$output = "video:3453kB audio:2222kB global headers:1432kB muxing overhead";
$pattern = '/video:([0-9]+)kB audio:([0-9]+)kB global headers:[0-9]+kB muxing overhead/';

// Überprüfen der String OK ist.
if( preg_match( $pattern, $output, $args ) )
{
  // Ja, der String ist ok.
  print( "Match: OK<br>" );
  print( "Video-Size: " . $args[1] . "<br>" );
  print( "Audio-Size: " . $args[2] . "<br>" );
}
else
{
  // Nein.. passt nicht.
  print( "Der String ist nicht in Ordnung." );
}
?>

Grüße
Manuel.
 
Wie mache ich ab ereg 3 die preg_match zuordnung ?
Bekomme dort die Fehlermeldung

Warning: preg_match() [function.preg-match]: Unknown modifier '['

LG
Sascha
 
rumspielen heisst austesten, probieren etc. Was glaubst du was ich mache wenn ich mit Regulären Ausdrücken arbeite? Nicht testen?

Ach, vergiss es.
 
Soweit habe ich fast alle Regular Expressions erledigt bis auf diese
PHP:
(frame=([^=]*) fps=[^=]* q=[^=]* L)?size=[^=]*kB time=([^=]*) bitrate=[^=]*kbits/s[^=]*$

ich weiß nicht wie ich diese löse

Liebe Grüße
Sascha
 
Ein Beispiel mit Eingabe und erwartete Ausgabe täte gut zur Sache.

frame=([^=]*) fps=[^=]* findet in der ersten Klammer auch das fps.....
 
du willst sowas
PHP:
frame[ ]*=[ ]*([0-9|\.|\-]*)[ ]*fps[ ]*=[ ]*([0-9|\.|\-]*)[ ]*q[ ]*=[ ]*([0-9|\.|\-]*)[ ]*Lsize[ ]*=[ ]*([0-9|\.|\-]*)[ ]*kB[ ]*time[ ]*=[ ]*([0-9|\.|\-]*)[ ]*bitrate[ ]*=[ ]*([0-9|\.|\-]*)[ ]*kbits/s

All die [ ]* zwieschendrin ist, damit es flexibel bleibt. Wenn ich dein Beispiel anschaue, hats da undefinerte Anzahl Leerzeichen zwieschendrin. ([0-9|\.|\-]*) gibt Zahlen, Punkte und ggf das Vorzeichen - aus.
 
Zurück