Die Erkennung einer url mit preg_match? ohne http:// in den string
Ich Frage mich, wie ich überprüfen könnte, eine Zeichenfolge gebrochen und in ein array gegen preg_match, um zu sehen, wenn es begann mit www. Ich habe bereits einen, check für http://www.
function isValidURL($url)
{
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
}
$stringToArray = explode(" ",$_POST['text']);
foreach($stringToArray as $key=>$val){
$urlvalid = isValidURL($val);
if($urlvalid){
$_SESSION["messages"][] = "NO URLS ALLOWED!";
header("Location: http://www.domain.com/post/id/".$_POST['postID']);
exit();
}
}
Dank!
Stefan
- Können Sie einige code, den Sie versucht haben, basiert auf der, die funktioniert? Mehr Menschen hier wird Ihnen helfen, ein problem zu lösen, an dem Sie arbeiten, geben Sie die Antwort. Einfach nur eine Anforderung, und produzieren eine Antwort, die ist, was ich bezahlt zu tun.
- Hinzugefügt in den funktionierenden code so weit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du willst so etwas wie:
dies ist mit dem | passend entweder
http://
oderwww
am Anfang. Ich habe die Trennzeichen zu%
zu vermeiden Kollision mit den|
(www\.)
erfordert eine.
nachwww.
. auch, getestet habe ich die regexp, gegen 'wwwtumblr.com' hier: solmetra.com/scripts/regex/index.php und es hat nicht passieren. jedoch, das wird match so etwas wie http://www.tumblrcom. der größte Fehler ist wohl die unescaped.
in der Dritten Gruppe. diese Tage, die ich in der Regel tun([a-z0-9-]\.)+([a-z0-9-])
entsprechend der subdomains und die tld.John Gruber von Daring Fireball hat geschrieben eine sehr umfassende regex für alle Typen von URLs, die von Interesse sein können. Sie können es hier finden:
http://daringfireball.net/2010/07/improved_regex_for_matching_urls
Ich explodieren die saite zunächst so aus, als könnte die url werden auf halbem Weg durch es z.B.
hello how are you www.google.com
Explode den string und verwenden Sie eine
foreach
- Anweisung.ZB:
Hinweis: Sie müssen verwenden Sie die
===
Betreiber, dastrpos
zurückkehren können, zurück0
die erscheinen werdenfalse
.Habe ich diese unten, die erlaubt die Erkennung von url ' s, die irgendwo in einem string. Für meine spezielle Anwendung-es ist ein Kontaktformular zur Bekämpfung von spam, so dass keine url ' s erlaubt sind. Funktioniert sehr gut.
Link zur Ressource: https://css-tricks.com/snippets/php/find-urls-in-text-make-links/
Meine Umsetzung;
Versuchen
implode($myarray, '').strstr("www.")==0
. Das implodiert dein array in einen string, dann wird geprüft, obwww.
ist am Anfang des Strings (Indexposition 0).