在我的代码中,我试图从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);
答案 0 :(得分:1)
我们正在使用preg_match
和str_replace
来获得所需的输出。
正则表达式:
download_file\(\K[^)]+
1。
download_file\(\K
这将匹配download_file(
,\K
将重置当前匹配。2。
[^)]+
这将匹配除)
以外的所有
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);
}