Следующая функция принимает строку и возвращает все URL-адреса, содержащиеся в. Однако, когда переменные запроса правильно разделены (и экранированы) с &усилитель; оно усекается при &, Как я могу изменить регулярное выражение, чтобы вернуть весь URL, когда &усилитель; используется?
Пример :
https://www.youtube.com/watch?v=exvUH2qKLTU&start=25
становится
https://www.youtube.com/watch?v=exvUH2qKLTU&
function wp_extract_urls( $content ) {
preg_match_all(
"#([\"']?)(". "(?:([\w-]+:)?//?)". "[^\s()<>]+". "[.]". "(?:". "\([\w\d]+\)|". "(?:". "[^`!()\[\]{};:'\".,<>«»“”‘’\s]|". "(?:[:]\d+)?/?". ")+". ")". ")\\1#",
$content,
$post_links
);
$post_links = array_unique( array_map( 'html_entity_decode', $post_links[2] ) );
return array_values( $post_links );
}
ссылка : https://core.trac.wordpress.org/ticket/30580
Да, это функция WordPress, но вам не нужно ничего знать о WordPress, чтобы помочь 🙂
Задача ещё не решена.
Других решений пока нет …