doubi1910 2012-12-25 19:05
浏览 40
已采纳

PHP:Preg_match(新挑战)

I have a html look like this (its javascript for flash player):

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

how can i use preg_match to extract the value for video_title so that it become:

echo $videoTitle;

will output: some cool vids title here

and for video_url will output:

WQFuk9Py2VC3jsCrPDJ69xtsj33MiXAElBzQw3TSHqOOyDYL0vRJELrB1hTTW3NG0A54kE2FVueuHMkQd8JveYb92eV+dYH4IUrrvJdP5Of9HGi+5i6GT11nL0dAv/ecyP4sB0jM8rVZzyS8imLarvPUvPuFPvvB8nwYXZ2ZKon4IPjmtC8SPftaw0PSuZKMg735hLCraeAE3lMQbRwiY7yMHKmUHDALG1Ky+HBDiK20vAGEIMwzPwKZmhbBXRGiHzEiXiRk4JgaVyp6N66EALao7VOE7UTzJLs=

my php look like this:

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

and it does not work. It show nothing.

  • 写回答

2条回答 默认 最新

  • duanhao7786 2012-12-25 19:15
    关注
    $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
    

    This will extract the text string between the ' quotes within encodeURIComponent() and the 2nd will extract the text within the " quotes for video_title

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Llama如何调用shell或者Python
  • ¥20 eclipse连接sap后代码跑出来空白
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案