PHP从onclick函数中提取值

时间:2017-09-13 11:06:22

标签: php

在我的代码中,我试图从href的onclick中提取确切的值我搜索了各种帖子但没有成功,我找到了一个可以遵循的解决方案,但在尝试了几次之后我为我弄得一团糟

这是我的示例下载字符串

<a href="#" onclick="download_file('tokenid','n','hashname')">Get Name</a>

我的要求是只提取这种格式的值,这样我就可以使用爆炸功能来分离

tokenid,n,hashname

目前我的PHP代码就像这样

$onclickAttr = $printtable;
if( preg_match("~download_file\('\K[^']++~", $onclickAttr, $match) )
$result[] = $match[0];
var_dump($result);

4 个答案:

答案 0 :(得分:1)

我们正在使用preg_matchstr_replace来获得所需的输出。

  

正则表达式: download_file\(\K[^)]+

     

1。 download_file\(\K这将匹配download_file(\K将重置当前匹配。

     

2。 [^)]+这将匹配除)以外的所有

Try this code snippet here

preg_match("#download_file\(\K[^)]+#", $string, $matches);
echo str_replace("'", "", $matches[0]);

答案 1 :(得分:0)

问题在于你的正则表达式。你的表达必须匹配括号之间的所有内容。此外,preg_match响应中的第一个元素始终是输入字符串,因此请使用正确的索引来检索实际匹配(在我的解决方案中为1)。

尝试像下面那样修改它。

 preg_match('/download_file\(([^\)]+)\)/', $onclickAttr, $match);
 $result[] = $match[1];
 var_dump($result);

答案 2 :(得分:0)

您应该使用ajax将值发送到您的php脚本

答案 3 :(得分:0)

you can get all **argument in array** can do any operation on array element

function download_file (){
        var htmlOutput = [];
        for (var i=0; i < arguments.length; i++) {
            htmlOutput.push( arguments[i]);
        }
        console.log(htmlOutput);
    }