1

私はこのようなhtmlを持っています(フラッシュプレーヤー用の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を使用してvideo_titleの値を抽出し、次のようにするにはどうすればよいですか。

エコー$videoTitle;

出力されます:ここにいくつかのクールなビデオタイトル

そしてvideo_urlの場合は以下を出力します:

WQFuk9Py2VC3jsCrPDJ69xtsj33MiXAElBzQw3TSHqOOyDYL0vRJELrB1hTTW3NG0A54kE2FVueuHMkQd8JveYb92eV + dYH4IUrrvJdP5Of9HGi + 5i6GT11nL0dAv / ecyP4sB0jM8rVZzyS8imLarvPUvPuFPvvB8nwYXZ2ZKon4IPjmtC8SPftaw0PSuZKMg735hLCraeAE3lMQbRwiY7yMHKmUHDALG1Ky + HBDiK20vAGEIMwzPwKZmhbBXRGiHzEiXiRk4JgaVyp6N66EALao7VOE7UTzJLs =

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

そしてそれは動作しません。何も表示されません。

4

2 に答える 2

1
$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()され、2番目の引用符内のテキストが抽出されます"video_title

于 2012-12-25T19:15:20.343 に答える
0

video_titleの場合("タイトルでのエスケープを許可):

'video_title'\s*:\s*"(.*?)*(?<!\\)"

PHPの場合:

$pattern='\'video_title\'\s*:\s*"(.*?)*(?<!\\)"';

そしてURLの場合:

'video_url'\s*:\s*encodeURIComponent\('([^']*)'\)

と:

$pattern='\'video_url\'\s*:\s*encodeURIComponent\(\'([^\']*)\'\)';
于 2012-12-25T19:16:29.277 に答える