Какой самый простой и быстрый способ проверить, является ли строка одиночным URL или TEXT (который может содержать URL)
возможные сценарии:
// successful scenario
$example[] = 'http://sub-domain.my-domain.com/folder/file.php?some=param';
// successful scenario
$example[] = '/assets/scripts/jquery.min.js?v=1.4';
// successful scenario
$example[] = 'jquery.min.js';
// this scenario should fail validation
$example[] = "http://www.domain.com welcome text\n and some other http://www.domain.com";
// this scenario should fail validation
$example[] = "scriptVar=50;";
Я пытался использовать встроенные функции php, такие как parse_url, filter_var, но ни одна из них не работает должным образом.
ОБНОВЛЕНИЕ 1
Чтобы было понятнее, я пытаюсь отделить возможный URI от содержимого скрипта, который будет вставлен как элемент DOM. Все URL-адреса будут отображаться как атрибут SRC, а остальные - как содержимое, например:
<script type="text/javascript" src="{$string}"></script>
<script type="text/javascript">{$string}</script>
ОБНОВЛЕНИЕ 2
Анализируя возможный контент, я пришел к выводу, что строка, содержащая символ пробела или точку с запятой, означает, что строка не может быть URI, я предполагаю, что этот шаблон может решить мою проблему:
preg_match('/[\s]|[;]/', $string);
охватит ли он все возможные коды javascript / css?