kostenloser Webspace werbefrei: lima-city


ereg Suchmuster - wie funktionierts?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    mathesoft

    Kostenloser Webspace von mathesoft

    mathesoft hat kostenlosen Webspace.

    Diese Suchmuster sehen für mich noch sehr kryptisch aus..

    Ich möchte folgendes erreichen: aus einem Text, wo vielleicht (also nicht immer) eine definierte Zeichenfolge ist, soll diese entfernt werden und an deren Stelle ein Variablenwert eingesetzt werden:

    <?php
     $fs="565255";
     $test="<br>%fs:datei.ext:** Bytes</div>";
     echo ereg_replace('(%fs:)(*)(:**)',$fs,$test);
    ?>


    Also in den Bereich, der "%fs:(irgendwas):**" heißt, soll komplett durch $fs ersetzt werden. Ergebnis soll also sein: "565255 Bytes"
    Hintergrund ist, daß dieser Quelltext Teil einer function ist, in der ich eine Textdatei einlese und zeilenweise ausgebe, und an ein paar Stellen solche Definitionen wie in $test vorkommen, von denen ich datei.ext herauskopiere und die Dateigröße ermittle, die dann in $fs gespeichert wird.

    Derzeit bekomme ich den Fehler:
    Warning: ereg_replace() [function.ereg-replace]: REG_BADRPT in test.php on line ..


    wie würde das korrekte ereg_replace-Suchmuster lauten?
    Wo kann ich mit eine Übersicht zu den möglichen Suchmustern ansehen (webseite, irgendwo auf php.net muss es das ja geben!)?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Die ereg_*-Funktionen gibts nicht mehr; Ersatz sind die preg_*-Funktionen (arbeiten fast identisch). Das sollte dir PHP auch melden sofern E_DEPRECATED aktiviert ist, sonst dringend mal auf eine aktuelle Version aktualisieren.

    Siehe:
    http://de2.php.net/manual/de/book.pcre.php
    Zur Syntax von Regex:
    http://de2.php.net/manual/de/reference.pcre.pattern.syntax.php

    Beitrag zuletzt geändert: 2.6.2013 3:49:50 von chatter
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Suchst du etwa sowas?
    $fs = '565255';
    $test = '<br>%fs:datei.ext:** Bytes</div>';
    $result = preg_replace('|%fs:(.*):\\*\\*|', $fs, $test);
    
    echo($result);

    Oder eher sowas?
    $text = <<< ETX
    %fs:file.txt:** Bytes
    %fs:datei.ext:** Bytes
    %fs:unknown.bin:** Bytes
    %fs:ereg.php:** Bytes
    ETX;
    
    $result = preg_replace_callback('|%fs:(.*):\\*\\*|', function($args) {
    	return file_exists($args[1]) ? filesize($args[1]) : $args[0];
    }, $text);
    
    echo($result);
  5. Autor dieses Themas

    mathesoft

    Kostenloser Webspace von mathesoft

    mathesoft hat kostenlosen Webspace.

    @chatter: Danke für den Hinweis; ich hab hier noch eine offline-PHP 5.0-.chm-Referenz, die ist wohl etwas alt :nosmile:
    Danke auch für die Links, "PCRE" - danach hätte ich nie gesucht, mir ein völlig neuer Begriff :shy: Da will ich mich dann hineinstudieren.

    @hackyourlife: die Variabeln waren fasst willkürlich gewählt, aber fs denk ich mir auch FileSize :) - aber in diesem Fall tut es der erste Code; der zweite liegt außerhalb meines Verstandes :shy:
    Danke für deine Unterstützung, der erste Code ist perfekt :love:
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!