kostenloser Webspace werbefrei: lima-city


[points=12] - Wie die Zahl einlesen?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Hallo,
    ich habe ein Formular auf meiner Webseite, bei dem man Werte über BB-Codes eingibt. Das ganze soll so aussehen:
    [points=12][titel]Hallo[/titel]
    undzwar soll die Zahl 12 (oder was der benutzer eben für einen numerischen Wert eingibt) "gefiltert" werden. Wie mach ich das am Besten? Mit Arrays könnte ich mir das vorstellen, aber wie soll das gehen?

    Für jeden Link oder Tutorial bin ich dankbar :angel:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. g****e

    du könntest es so versuchen:
    preg_match_all( '/points\=[0-9]+/, $string, $array);
    foreach ($array[1] as $value) {
        echo $value;
    }


    meine regex sind verdammt schlecht, also nich wundern wenns nicht geht.
    möchtest du denn nur an dies eine, oder möchtest du an jeden in eckigen klammern stehenden begriff?
  4. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Ahh danke für den Post:thumb:
    Du hast mich auf die richtige Fährte gelockt. Mit der preg_match - Funktion werde ich es allerdings nicht machen, da die substr() - Funktion wesentlich bekömmlicher (wie ich finde) ist.

    => Für alle mit dem Gleichem Problem: http://www.php.net/manual/de/function.substr.php

    <?php
     $rest = substr("[points=12344444]", 8, -1);
     echo $rest; // Gibt 12344444 aus.
    ?>

    Funktioniert mit jedem beliebigen Wert und ist getestet.

    Beitrag zuletzt geändert: 27.3.2011 16:14:13 von limabone
  5. Dein String war aber in dem Beispiel oben
    [points=12][titel]Hallo[/titel]
    Wie willst du bei so einem String mit substr() deinen Wert auslesen?
    $string = '[points=12][titel]Hallo[/titel]';
    $rest = substr($string, 8, -1);
    echo $rest; // Gibt 12][titel]Hallo[/titel aus.
  6. $string = '[points=12][titel]Hallo[/titel]';
    $num = preg_replace('/[0-9]/', '', $string);


    $string = '[points=12][titel]Hallo[/titel]';
    preg_match('/\d+/', $string, $matches); 
    $num = $matches[0];


    Beitrag zuletzt geändert: 30.3.2011 15:48:57 von fabo
  7. limabone schrieb:
    ich habe ein Formular auf meiner Webseite, bei dem man Werte über BB-Codes eingibt.
    Könnte problematisch werden wenn noch mehr BB-Code hat :wink:
    Dein Beispiel würde an so etwas z.B. scheitern:
    $string = '[size=23][points=12][titel]Hallo[/titel][/size]';
    preg_match('#\d+#', $string, $matches); 
    echo $matches[0];
    Möglicher Lösungsweg:
    $string = '[points=12][titel]Hallo[/titel]';
    preg_match('#\[points=([0-9]+)\]#', $string, $matches); 
    $rest = substr($matches[0], 8, -1);
    echo $rest;
  8. 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!