So entfernen Sie einfache und doppelte Anführungszeichen aus einer Zeichenfolge

8

Wenn ich eine Phrase, die doppelte Anführungszeichen enthält, durch diese Funktion führe, wird die Anführungszeichen durch quot ersetzt.

Ich möchte sie komplett entfernen (auch einfache Anführungszeichen). Wie kann ich die Funktion ändern, um das zu tun?

%Vor%

Aktualisierung:

%Vor%     
Scott B 28.03.2011, 03:12
quelle

5 Antworten

12

Es sieht so aus, als hätte Ihre ursprüngliche Zeichenfolge die HTML-Zeichen für " ( " ). Wenn Sie also versuchen, sie zu bereinigen, entfernen Sie einfach & und ; und lassen den Rest der Zeichenfolge übrig quot .

--- BEARBEITEN ---

Die einfachste Möglichkeit, nicht-alphanumerische Zeichen zu entfernen, wäre, die HTML-Zeichen mit html_entity_decode , führen Sie dann den regulären Ausdruck aus. Da Sie in diesem Fall nichts erhalten, was neu codiert werden muss, müssen Sie nicht htmlentities , aber es lohnt sich, daran zu denken, dass Sie HTML-Daten hatten und Sie jetzt raw unencoded -Daten haben.

ZB:

%Vor%

Beachten Sie, dass ENT_QUOTES die Funktion so kennzeichnet, dass "... sowohl doppelte als auch einfache Anführungszeichen konvertiert werden.".

    
Hamish 28.03.2011, 03:21
quelle
24

Ich würde diese Funktion string_sanitize() nicht aufrufen, da sie irreführend ist. Sie könnten es strip_non_alphanumeric() nennen.

Ihre aktuelle Funktion entfernt alles, was kein Groß- oder Kleinbuchstabe oder eine Zahl ist.

Sie können nur ' und " mit ... entfernen.

%Vor%     
alex 28.03.2011 03:23
quelle
1

Ich denke, Ihr preg_replace-Aufruf sollte so aussehen:

%Vor%

Weitere Informationen finden Sie unter html_entity_decode-Referenz .

    
anubhava 28.03.2011 03:25
quelle
0

Ihre Funktion verwendet reguläre Ausdrücke, um alle Zeichen zu entfernen, die sich von [a-zA-Z0-9] unterscheiden, und entfernt daher sicher "" oder ""

EDIT: Nun, aus der Hamish-Antwort erkenne ich, dass deine Zeichenkette eine HTML-Zeichenkette ist, so dass sie erklärt, warum "(& amp; quot) in" quot "umgewandelt werden soll. Du könntest &quote durch preg_replace oder htmlspecialchars_decode zuerst.

    
Hoàng Long 28.03.2011 03:22
quelle
0

Um sicher zu sein, alle Arten von Anführungszeichen zu entfernen (einschließlich derjenigen, in denen sich die linke Seite von den rechten unterscheidet), denke ich, dass es etwas wie

sein muss %Vor%     
gramo 17.04.2015 16:35
quelle

Tags und Links