Originalmente inviato da
javascripter
Il
- indica in una classe di caratteri una sequenza, ad esempio dalla a alla z: [a-z].
Quindi se si vuole cercare il carattere
- all'interno di una classe di caratteri bisogna fare l'escape, tu mi dirai che funziona anche senza ma io sono
pignolo !
OK, fai bene, anch'io (quando so ciò che faccio) :D
PS: ok, tutto completato:
Codice PHP:
// Controlla la presenza di caratteri non validi nel "semplice link":
if (empty($width) && empty($height) && (preg_match('#\s+#', $_POST['text'])) || empty($width) && empty($height) && (!preg_match('#^http://(www\.)?(.+)\.([a-z]{2,3})/(.+)$#', $_POST['text']))) {
die ('<hr />Rilevati caratteri non ammessi (nel solo link non sono tollerati spazi e/o newline e deve iniziare con http://)');}
// Controlla la presenza di caratteri non validi nell'object (facebook e youtube):
if (!empty($width) && !empty($height) && (preg_match('#.+<object(.*)/object>#', $_POST['text'])) || (preg_match('#<object(.*)/object>.+#', $_POST['text'])) || (preg_match('#.+<object(.*)/object>.+#', $_POST['text']))) {
die ('<hr />Rilevati caratteri non ammessi (prima e/o dopo l\'object non sono accettati altri caratteri)');}
// Controlla la presenza di caratteri non validi nell'embed (video.google):
if (!empty($width) && !empty($height) && (!preg_match('#http://(www\.)?(youtube|youtube-nocookie|facebook)\.([a-z]{2,3})//(.+)#', $_POST['text'])) && (preg_match('#.+<embed(.*)/embed>#', $_POST['text'])) || (preg_match('#<embed(.*)/embed>.+#', $_POST['text'])) || (preg_match('#.+<embed(.*)/embed>.+#', $_POST['text']))) {
die ('<hr />Rilevati caratteri non ammessi (prima e/o dopo l\'embed non sono accettati altri caratteri)');}