Ich brauche eine Funktion, die nach vorhandenen URLs in einer Zeichenfolge sucht.Regex regulärer Ausdruck, um die meisten URLs zu entsprechen, muss verbessert werden
function linkcleaner($url) {
$regex="(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))";
if(preg_match($regex, $url, $matches)) {
echo $matches[0];
}
}
Der reguläre Ausdruck wird von der John Gruber's blog, wo er das Problem der Schaffung einer Regex alle URLs passende gerichtet. Leider kann ich es nicht funktionieren lassen. Es scheint, dass das Problem von den Anführungszeichen in der Regex oder den anderen Punktsymbolen am Ende des Ausdrucks kommt. Jede Hilfe wird geschätzt. Vielen Dank!
„Kann nicht damit es funktioniert "ist kein integrierter PHP-Fehler Botschaft. –
@JackManey, roflmao –
Sorry, der Fehler war "Parse Fehler: Syntaxfehler, unerwartet ',' in C: \ ... \ config.php on line ...". Englisch ist nicht meine Muttersprache, manchmal habe ich Probleme zu erklären, was ich sagen möchte. – olegb3