Quelle est la plus simple et la plus rapide pour vérifier si la chaîne est URL unique ou TEXT (qui peut contenir des urls)Comment séparer l'URI possible d'un autre contenu en PHP?
scénarios possibles:
// 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;";
J'ai essayé d'utiliser les fonctions PHP natives comme parse_url, filter_var mais pas d'entre eux fonctionnent comme prévu.
MISE À JOUR 1
Pour le rendre plus clair, je suis en train de séparer URI possible du contenu du script qui serait inséré comme élément DOM. Tous les urls iraient comme attribut SRC et de repos en tant que contenu, par exemple:
<script type="text/javascript" src="{$string}"></script>
<script type="text/javascript">{$string}</script>
MISE À JOUR 2 En analysant le contenu possible que je viens à la conclusion que la chaîne contenant caractère d'espace blanc ou virgule signifie que la chaîne ne pouvait pas être URI, Je présume que ce modèle pourrait résoudre mon problème:
preg_match('/[\s]|[;]/', $string);
serait-il couvrir tout le code javascript/css possible?
Définir "URL". Auront-ils toujours le préfixe de protocole? Si non, que dirait une URL en dehors d'une chaîne aléatoire - le 'www.''? Voulez-vous tester http uniquement ou aussi ftp, scp, https ...? Qu'en est-il du nom d'utilisateur @ mot de passe: préfixe hostname?Qu'en est-il des URL relatives '/ dossier/fichier.php'? –
Vous savez que, techniquement, ces deux cas sont des URL valides, n'est-ce pas? La différence est que le premier aboutira probablement à une ressource valide, tandis que le second échouera à la validation/recherche de nom de domaine. – cdhowie
Merci Pekka, j'ai oublié scénario sans protocole ou domaine. – Nazariy