PHP:Preg_match(新挑战)

PHP:Preg_match(新挑战),php,preg-match,Php,Preg Match,我有一个类似这样的html(它是flash player的javascript): var flashvars = { 'autoplay' : autoplay, 'autoreplay' : 'false', 'start' : '', 'hideLinkPane' : 'tr

我有一个类似这样的html(它是flash player的javascript):

var flashvars =
            {
                'autoplay'          : autoplay,
                'autoreplay'        : 'false',
                'start'             : '',
                'hideLinkPane'      : 'true',
                'disable_sharebar'  : 'true',
                'disablePauseroll'  : disablePauseroll,
                'video_url'         : encodeURIComponent('WQFuk9Py2VC3jsCrPDJ69xtsj33MiXAElBzQw3TSHqOOyDYL0vRJELrB1hTTW3NG0A54kE2FVueuHMkQd8JveYb92eV+dYH4IUrrvJdP5Of9HGi+5i6GT11nL0dAv/ecyP4sB0jM8rVZzyS8imLarvPUvPuFPvvB8nwYXZ2ZKon4IPjmtC8SPftaw0PSuZKMg735hLCraeAE3lMQbRwiY7yMHKmUHDALG1Ky+HBDiK20vAGEIMwzPwKZmhbBXRGiHzEiXiRk4JgaVyp6N66EALao7VOE7UTzJLs='),
                'encrypted'         : 'true',
                'video_title'       : "some cool vids title here",
                'embed_js'          : "",
                'prerollRepeat'     : "false"
            };
如何使用preg_match提取视频标题的值,使其成为:

echo$videoTitle

将输出:一些很酷的视频标题在这里

对于视频,url将输出:

WQFUK9PY2VC3JSCRPDJ69XTSJ33MIXAELBZQW3TSHQOOYDYL0VRJELRB1HTTW3NG0A54KE2FVUUHMKQD8JVEYB92EV+9HGI+5i6GT11nL0dAv/ECYP4SB0JM8RVZYS8IMLARVPUFPVB8NWYXZ2ZKON4IPJMTC8SPFTAW0PSUZK735HLCREAL7YMBR7YMUHDALG1KY+HBZYP7V7V7V7V7V7V7V7YK7V7V7V7V7YK7V7V7V7V7S的D7ZZZZZZK7ZZZZZZZK7YK7YK7YK7YK7ZK7ZK7ZK=

我的php如下所示:

$pagex = $this->page;
$patternx = '/("video_title":")(.*?)(")/i';
if(preg_match($patternx,$pagex,$arx)){  
    $key = $arx[2];
}               


$page = $this->page;
$pattern = '/("video_url":")(.*?)(")/i';
if(preg_match($pattern,$page,$ar)){ 
$link = $ar[2];
}
而且它不起作用。它什么也看不出来

$string = "'disablePauseroll'  : disablePauseroll,
            'video_url'         : encodeURIComponent('WQFuk9Py2VC3jsCrPDJ69xtsj33MiXAElBzQw3TSHqOOyDYL0vRJELrB1hTTW3NG0A54kE2FVueuHMkQd8JveYb92eV+dYH4IUrrvJdP5Of9HGi+5i6GT11nL0dAv/ecyP4sB0jM8rVZzyS8imLarvPUvPuFPvvB8nwYXZ2ZKon4IPjmtC8SPftaw0PSuZKMg735hLCraeAE3lMQbRwiY7yMHKmUHDALG1Ky+HBDiK20vAGEIMwzPwKZmhbBXRGiHzEiXiRk4JgaVyp6N66EALao7VOE7UTzJLs='),
            'encrypted'         : 'true',
            'video_title'       : \"some cool vids title here\",";

preg_match("/encodeURIComponent\('([^']+)/", $string, $match);

echo $match[1]; // URL

preg_match('/video_title[^"]+"([^"]+)/', $string, $match);

echo $match[1]; // Title
这将提取
encodeURIComponent()
中的
引号之间的文本字符串,第二个将提取
视频标题的
引号中的文本

这将提取
encodeURIComponent()
中的
引号之间的文本字符串,第二个将提取
视频标题的
引号中的文本(允许标题中转义的
):

以及:

对于视频标题(允许标题中转义的
):

以及:


我认为你需要回到最基本的方面。你不能灵活地使用引号(
[“]
),不能解释空格(
\s*
),不能解释
encodeURIComponent
,等等。你为什么要用regex这么做?为什么不让Javascript使用JSON发送对象,并使用
JSON\u decode()
在PHP中?因为js部分在HTMLY中,你在“使用”和“使用”之间来回跳跃,没有一致性。这在任何语言中都是一个字符串吗?这是一个javascript,请检查其中的一部分:我认为您需要回到基础。你不能灵活地使用引号(
[“]
),不能解释空格(
\s*
),不能解释
encodeURIComponent
,等等。你为什么要用regex这么做?为什么不让Javascript使用JSON发送对象,并使用
JSON\u decode()
在PHP中?因为js部分在HTMLY中,你在“使用”和“使用”之间来回跳跃,没有一致性。这在任何语言中都是一个字符串吗?这是一个javascript,请检查其中的一部分:比如:$patternx='/'video\u title'\s*:\s*(.*)($preg\u-match(“/'video\u title'\s*:\s*”(.*)(*)($patternx='/'video\u-title'\s*:\s*)(.*)(?)这样:$patternx='/'video\u-title'\s*:\s*(*)(?)你需要转义
'/'video\s*。(*/“视频标题”\s*:\s*”(*?)*(?您需要转义
$patternx='\'video\u title\'\s*:\s*”(*?)(?谢谢,这项工作很好。视频标题怎么样?您有什么解决方案吗?谢谢,这项工作很好。视频标题怎么样?您有什么解决方案吗?
'video_title'\s*:\s*"(.*?)*(?<!\\)"
$pattern='\'video_title\'\s*:\s*"(.*?)*(?<!\\)"';
'video_url'\s*:\s*encodeURIComponent\('([^']*)'\)
$pattern='\'video_url\'\s*:\s*encodeURIComponent\(\'([^\']*)\'\)';