2016-09-20 5 views
-1

Ich habe eine Frage zu preg_match. Ich habe ein Textfeld, in dem Benutzer einen zufälligen Text eingeben können. Allerdings, wenn sie ein:preg_match zeigt nichts an/Unbekannter Modifikator 'I'

[IMG] Bild-URL hier [/ IMG]

i will alles zwischen [IMG] [/ IMG] in einer Variablen gesetzt werden.

Was ich jetzt:

if(isset($_POST['edit_signature_table'])){ 
    $string = $_POST['thread_message']; 
    echo $string; 

    if (preg_match('/[IMG](.*?)[/IMG]/', $string, $display)) { 
     print_r($display); 
    }else{ 
     echo "[IMG][/IMG] was not used."; 
    } 
} 

Wenn ich etwas in Form und Presse reichen schreiben. Ich bekomme das Ergebnis, das ich gerade ausgefüllt habe. (done by echo $ string).

Aber. Ich bekomme immer dieses Ergebnis:

Wie Sie sehen können. Die erste Zeile ist das Ergebnis von $ string.

Dann bekomme ich eine Fehlermeldung (Zeile ist if (preg_match))

Und dann geht es auf die andere Aussage.

jedoch in meinem Ergebnis können Sie sehen, dass ich verwende [IMG] [/ IMG] und ich erwarte das Ergebnis zu sein: ein Bild

Kann mir jemand sagen, was ich falsch mache?

EDIT:

Menschen und Downvoting sagen, es ist ein Duplikat ist.

Ich schaute auf andere Leute Fragen dazu, wusste aber immer noch nicht, wie ich mein Problem lösen sollte.

Leute, die ablehnen. Bitte sag mir warum ... Die Frage ist klar genug, denke ich.

+1

Escape the '[' und '/' -> '\ [' , \/IMG' - \/\ [IMG] (. *?) \ [\/IMG]/'' –

+0

Mögliches Duplikat von [Warnung: preg \ _replace(): Unbekannter Modifikator' \] '] (http : //stackoverflow.com/questions/20705399/warning-preg-replace-unknown-modifier) ​​ –

+0

Könnte ein Duplikat sein, aber sah, dass und immer noch nicht wusste, was zu tun ist:/Auch Menschen fuchteln. Bitte erzähle mir warum. Die Erklärung war klar genug, denke ich. Und ja, ich habe mir andere Fragen angeschaut und im Internet gesucht. Aber wusste immer noch nicht, was zu tun ist. – Mitch

Antwort

1

Sie müssen Ihre Regex entkommen, damit es funktioniert.

preg_match('/[IMG](.*?)[/IMG]/', $string, $display)

wird

preg_match('/\[IMG\](.*?)\[\/IMG\]/', $string, $display)

Sie auch problemlos Ihre regex auf verschiedene Eingaben hier ausprobieren können: http://www.phpliveregex.com/

+0

Das war es für mich .. kann nicht glauben es war dieses haha ​​aber hätte nie darüber nachgedacht – Mitch

+0

Das ist was diese Community ist :) Bitte auch die Antwort akzeptieren, wenn es für Sie gearbeitet hat. –

+0

Müssen warten 6 Minuten wird dann akzeptieren :) – Mitch