2010-04-18 44 views
4

我想驗證表單中的字段,以確保它包含鏈接到Vimeo視頻的URL的正確格式。下面是我在Javascript中的,但我需要將其轉換爲PHP(不是我的強項)簡單的PHP正則表達式問題

基本上,我需要檢查該字段,如果它的格式不正確,我需要將錯誤信息存儲爲變量..如果它是正確的,我將變量存儲爲空。

   // Parse the URL 
      var PreviewID = jQuery("#customfields-tf-1-tf").val().match(/http:\/\/(www.vimeo|vimeo)\.com(\/|\/clip:)(\d+)(.*?)/); 
      if (!PreviewID) { 
       jQuery("#cleaner").html('<div id="vvqvideopreview"><?php echo $this->js_escape(__("Unable to parse preview URL. Please make sure it's the <strong>full</strong> URL and a valid one at that.", 'vipers-video-quicktags')); ?></div>'); 
       return; 
      } 

傳統VIMEO URL看起來是這樣的:http://www.vimeo.com/10793773

謝謝!

回答

4
if (0 === preg_match('/^http:\/\/(www\.)?vimeo\.com\/(clip\:)?(\d+).*$/', $value)) 
{ 
    $error = 'Unable to parse preview URL'; 
} 

更新,在回答您的評論:

if (0 === preg_match('/^http:\/\/(www\.)?vimeo\.com\/(clip\:)?(\d+).*$/', $value, $match)) 
{ 
    $error = 'the error'; 
} 
else 
{ 
    $vimeoID = $match[3]; 
} 
+0

謝謝!你能告訴我如何將用戶輸入設置爲僅將vimeo id號碼設置爲變量嗎? – 2010-04-18 14:39:51

+0

謝謝!效果很好。 – 2010-04-18 16:40:12

2

只要您解析$ _REQUEST與preg_match喜歡。

$vimeo_array = array(); 
$vimeo_link = $_REQUEST("form_input_name"); 
if(preg_match(/http:\/\/(www.vimeo|vimeo)\.com(\/|\/clip:)(\d+)(.*?)/, $vimeo_array, $arr)) 
{ 
    $vimeo_code = $vimeo_array[3]; 
} else { 
    $error = "Not a valid link"; 
} 
+0

感謝您的快速響應!你能告訴我如何將用戶輸入設置爲僅將vimeo id號碼設置爲變量嗎? – 2010-04-18 14:40:22

+0

當然,我的答案更新 – retro 2010-04-18 14:49:00

+0

您可以使用salathe的答案修改正則表達式('〜^ http://(?:www \。)?vimeo \ .com /(?:clip:)?(\ d +)〜' ),那麼這個id將被保存在$ vimeo_array [1]中。 – retro 2010-04-18 14:56:35

0

爲了獲得在Vimeo的ID號,你可以這樣做以下:

$link = 'http://vimeo.com/10638288'; 
if (preg_match('~^http://(?:www\.)?vimeo\.com/(?:clip:)?(\d+)~', $link, $match)) { 
    $vimeo_id = $match[1]; 
} else { 
    // Show user an error, perhaps 
} 

我也稍微改變了正則表達式,以節省過多的反斜槓轉義字符。

2

嘗試此HTTPS/HTTP的快速反應網址

if (preg_match('/^(http|https):\/\/(www\.)?vimeo\.com\/(clip\:)?(\d+).*$/', $vimeo_url, $vimeo_id)){ 
    $vimeoid = $vimeo_id[4]; 
}else{ 
    // error message... 
}