Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单PHP正则表达式问题_Php_Regex_Vimeo - Fatal编程技术网

简单PHP正则表达式问题

简单PHP正则表达式问题,php,regex,vimeo,Php,Regex,Vimeo,我想验证表单中的字段,以确保它包含链接到Vimeo视频的URL的正确格式。下面是我在Javascript中的内容,但我需要将其转换为PHP(不是我的强项) 基本上,我需要检查字段,如果它的格式不正确,我需要将错误消息存储为变量。。如果正确,我将变量存储为空 // Parse the URL var PreviewID = jQuery("#customfields-tf-1-tf").val().match(/http:\/\/(www.v

我想验证表单中的字段,以确保它包含链接到Vimeo视频的URL的正确格式。下面是我在Javascript中的内容,但我需要将其转换为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;
            }
//解析URL
var PreviewID=jQuery(“#customfields-tf-1-tf”).val().match(/http:\/\/(www.vimeo | vimeo)\.com(\/\\\/clip:)(\d+)(*?/);
如果(!PreviewID){
jQuery(“#cleaner”).html(“”);
返回;
}
传统的vimeo url如下所示:

谢谢

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];
}

只需使用like解析您的$\u请求


要获取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
}

我还稍微修改了正则表达式,以保存过多的反斜杠转义字符。

请尝试对https/http url执行此操作

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

谢谢你的快速回复!您能告诉我如何剥离用户输入以仅将vimeo id号设置为变量吗?感谢您的快速响应!您能告诉我如何剥离用户输入以仅将vimeo id号设置为变量吗?您可以使用Salath答案中修改的正则表达式(“^http:/(?:www”)?vimeo\.com/(?:clip:)?(\d+”),然后id将保存在$vimeo_数组[1]中。
if (preg_match('/^(http|https):\/\/(www\.)?vimeo\.com\/(clip\:)?(\d+).*$/', $vimeo_url, $vimeo_id)){
    $vimeoid = $vimeo_id[4];
}else{
   // error message... 
}