2010-02-23 6 views

Répondre

2

Je suis assez sûr qu'il n'y a pas construit en validateur pour cela, mais écrire des validateurs sur mesure est super facile:

class My_Validate_Youtube extends Zend_Validate_Abstract{ 

    public function isValid($value){ 
     // check url here 
     if (no_good($value)){ 
      $this->_error("Explain the error here"); 
      return false; 
     } 
     return true; 
    } 

} 

Il suffit de mettre tout ce que vous contrôles ne doivent dans cette classe, et d'exécuter le validateur sur tout Liens Youtube à vérifier.

modifier: De Laykes, vous voudrez peut-être envisager d'utiliser le validateur pour vérifier si la vidéo existe réellement, au lieu de déterminer si elle correspond à un modèle. Cela dépend de vos cas d'utilisation, par exemple, combien de temps de latence voulez-vous introduire en faisant un appel à l'API Youtube?

+0

Merci pour vos réponses. J'ai décidé d'écrire ma propre fonction personnalisée pour la validation. Mais il valide uniquement le lien vidéo avec regexp. – Bounce

1

Je ne sais pas si c'est possible, cependant, je voudrais adopter une approche différente et essayer de voir si le lien a des commentaires à ce sujet.

Prenez ceci par exemple. A partir de là: http://framework.zend.com/manual/en/zend.gdata.youtube.html

$yt = new Zend_Gdata_YouTube(); 
$commentFeed = $yt->getVideoCommentFeed('abc123813abc'); 

foreach ($commentFeed as $commentEntry) { 
    echo $commentEntry->title->text . "\n"; 
    echo $commentEntry->content->text . "\n\n\n"; 
} 

Si vous utilisez l'ID vidéo dans l'argument VideoCommentFeed, vous serez en mesure d'obtenir la valeur de $ commentFeed. Si vous obtenez une erreur, vous savez que la vidéo n'existe pas.

Je suis sûr que si vous essayez d'autres méthodes, vous trouverez probablement un exemple de ce que vous voulez.

Questions connexes