Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana adresu strony www podanego w formularzu na SPAM
Forum PHP.pl > Forum > PHP
art
Na stronie mam formularz w ktorym ludzie wpisuja komentarze (w polu texarea) chcialbym wyeliminowac z tekstu wszelkie adresy stron www podawane przez uzytkownikow i zastapic je np. slowem [SPAM] ...

Nie moge zabardzo ogarnąc funkcji ereg ktora powinna to wykonac z tego co mi wiadomo... czy ktos ma mzoe gotowy przepis albo jakas funkcje do tego... a moze moglby mi ktos wyajsnic jak to ereg dziala i jak budowac tam rozne zalozenia...
spenalzo
Hmm, a nie lepiej zamiast eregów użyć funkcji [manual:3408cc3211]strip_tags[/manual:3408cc3211], która usunie wszystkie znaczniki HTMLa? Wtedy odpada także problem wrzucania na stronę skryptów Javascript.
mistrzu
mozna to rozwiazac w ten sposob:

[php:1:168968ccea]<?php
$wzor = jakies_wyrazenie_regularne
$zamiana = ereg_replace($wzor, "SPAM", $text);
echo "$zamiana";
?>[/php:1:168968ccea]
Jabol
mistrzu, a wyrazie regularne?
art
Chyba musze troche dokladniej opisac o co mi chodiz bo widze ze nie do konca mnie wszyscy zrozumieli...

wiec chodiz o to zeby w komentarzach ktore beda dodawac ludzie nie bylo adresow do stron... nie chodiz mi o linki bo to jzu mam zabezpieczone (wlasnie za pomoca strip_tags) lecz o adres jako tekst... czyli zeby np komentarz takl:

"Cze ludziska tu Janek z Bogdańca zapraszam na moja strone www.mojastara.pl .. olejcie ten sajt wchodzcie do mnie"

wyglądał tak:

"Cze ludziska tu Janek z Bogdańca zapraszam na moja strone [SPAM] .. olejcie ten sajt wchodzcie do mnie"


no i to wsytsko


Nie moge zrobic tego tak bo skad ma wiedzec jaki adres wymysli uzytkownik?
[php:1:11b8e6c5d3]
<?php
$wzor = jakies_wyrazenie_regularne
$zamiana = ereg_replace($wzor, "SPAM", $text);
echo "$zamiana";
?>
[/php:1:11b8e6c5d3]

potzrebne mi cos takiego jak czesto robi sie przy mailach... fubnkcja sprawdza czy jest cos przed malpa i za małpa ile to ma znakow itd... i mi jets wlasnie takie cos potzrebne zeby sprawdzalo np czy jest www. albo jeden ciagly wyraz z 2 kropkami i przy ostatniej kropcje np 2 lub 3 literki... chodiz mi o cos takiego... ale sam nei potrafie zbudowac takiego ereg...
Omega
coś w tym stylu:
Kod
^(http://)+.*s+$
dob
Zobacz moj wymysł - na pewno nie jest świetny ale na pewno utrudni spamerom życie :

[php:1:433b112d4d]<?php
$zamiana=eregi_replace("(http|s://|ftp://|www|http://)+(.+)+([/.]|/)+([a-z]{2,4})", "[spam]", $text);
?>[/php:1:433b112d4d]

[edit]
To będzie chyba lepsze:
[php:1:433b112d4d]<?php
$zmiana=eregi_replace("(http|s://|ftp://|www|http://)+(.+)+([/.]|/)+([a-z]{2,4}|[[:graph:]]{0,})", "[spam]", $text);
?>[/php:1:433b112d4d]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.