PHP - Entfernen Sie http / www von der Nachricht (mit Ausnahme der Host-Domäne), um anklickbare Links zu deaktivieren

9

Ich habe ein einfaches Message Board, sagen wir: mywebsite.com, mit dem Nutzer ihre Nachrichten veröffentlichen können. Derzeit macht das Board alle Links anklickbar, dh. wenn jemand etwas postet, was mit:

beginnt %Vor%

dann macht das Skript sie automatisch als Links (dh fügt das A href .. -Tag hinzu).

DAS PROBLEM - Es gibt zu viel Spam. Meine Idee ist also, das obige http | s / www automatisch zu entfernen, damit diese nicht zu "anklickbaren Links" werden. JEDOCH möchte ich zulassen, dass Poster auf Seiten innerhalb meiner Site verlinken, d. HTTP | s / www nicht entfernen, wenn die Nachricht einen Link / s zu mywebsite.com enthält.

Meine Idee war, zwei Arrays zu erstellen:

%Vor%

aber ich weiß nicht, wie man sie richtig benutzt (wahrscheinlich könnte str_replace irgendwie funktionieren).

Unten ist ein Beispiel von $ message, das vor dem Posten und nach dem Posten steht:

$ Nachricht VOR:

  

Hallo Welt, vielen Dank Ссылка habe ich viel gelernt. ich fand   Sie auf Ссылка , Ссылка und auf einigen www.spamwebsite.com/refid=spammer2 .

$ Nachricht NACH:

  

Hallo Welt, vielen Dank Ссылка habe ich viel gelernt. ich   Sie auf bing.com, google.com/search und auf einigen Spamwebsite.com/refid=spammer2 gefunden.

Bitte beachten Sie, dass der Benutzer reinen Text in das Postformular eingibt, also sollte das Skript nur mit diesem Klartext funktionieren (keine href etc.).

    
NonCoder 24.04.2015, 23:17
quelle

4 Antworten

0

Für jeden, der eine Antwort sucht - habe ich eine verwandte (genauere) Frage gestellt, die das Problem gelöst hat: PHP - entfernen Sie Wörter (http | https | www | .com | .net) aus Strings, die nicht mit bestimmten Wörtern beginnen

    
NonCoder 27.04.2015, 03:31
quelle
1
%Vor%

Weitere Informationen: Ссылка

    
Ido 24.04.2015 23:24
quelle
1

killSpam() Funktionsmerkmale:

  • funktioniert mit einfachen und doppelten Anführungszeichen.
  • Ungültiger html
  • ftp: //
  • Ссылка
  • Ссылка
  • Datei: //
  • mailto:
%Vor%

Verwendung:

%Vor%

Spam Beispiel:

ICH KANN DEN SPAM-HTML-HIER NICHT HINZUFÜGEN, ICH HABE GEWESEN, DASS ES EIGENEN KillSpam () ist ... - schau es dir unter Ссылка an

  

Hallo Welt, dank http: // mywebsite / about habe ich viel gelernt. ich fand   Sie finden sie auf http://www.bing.com, https://google.com/search und auf einigen Websites unter www.spamwebsite.com/refid=spammer2.   www.spamme.com, http://morespam.com/?aff=122,   http://crazyspammer.com/?money=22 und [email protected],   Datei: //spamfile.com/file.txt ftp://spamftp.com/file.exe

Ausgabe:

  

Hallo Welt, dank (SPAM) habe ich viel gelernt. Ich habe dich auf Ссылка , Ссылка und bei einigen gefunden (SPAM) .   (SPAM), (SPAM), (SPAM) und (SPAM), (SPAM) (SPAM)

Demo:

Ссылка

    
Pedro Lobito 24.04.2015 23:38
quelle
0

Wenn Sie Text von Links beibehalten möchten, diese aber "nicht anklickbar" machen möchten, können Sie diesen Code versuchen:

%Vor%

Codepad

    
userlond 25.04.2015 02:33
quelle