PHP preg_替换反向引用
所以我试着让这些背景资料发挥作用,但我一辈子都搞不清楚 目前我有这个字符串PHP preg_替换反向引用,php,regex,preg-replace,backreference,Php,Regex,Preg Replace,Backreference,所以我试着让这些背景资料发挥作用,但我一辈子都搞不清楚 目前我有这个字符串,我需要用实际文件大小替换它 这就是我目前所拥有的 $oldStr = "<% size_../files/file.rar %>"; $newStr = preg_replace("/<% size_(\w+) %>/", filesize("$1"), $oldStr); $oldStr=”“; $newStr=preg_replace(“/”,文件大小(“$1”),$oldStr); 基本
,我需要用实际文件大小替换它
这就是我目前所拥有的
$oldStr = "<% size_../files/file.rar %>";
$newStr = preg_replace("/<% size_(\w+) %>/", filesize("$1"), $oldStr);
$oldStr=”“;
$newStr=preg_replace(“/”,文件大小(“$1”),$oldStr);
基本上,我需要获取模式(\w+)并将其用于via filesize函数。\w只是[A-Za-z0-9],因此您需要处理其他字符、空格等。可以添加所有需要的类型,也可以将所有类型匹配到“%” 您可以使用preg_replace,然后获取文件大小,或者使用preg_replace_回调 举几个例子:
$oldStr = "<% size_../files/file with spaces.rar %>";
$size1 = preg_replace_callback("/<% size_([\w\.\/\s]+) %>/",
function ($matches) {
return filesize($matches[1]);
},
$oldStr);
$newStr = preg_replace("/<% size_(.+) %>/", "$1", $oldStr);
if (is_file($newStr)) {
$size2 = filesize($newStr);
} else {
//not a file
}
$oldStr=”“;
$size1=preg\u replace\u回调(“/”,
函数($matches){
返回文件大小($matches[1]);
},
$oldStr);
$newStr=preg_replace(“//”、“$1”、$oldStr);
if(is_文件($newStr)){
$size2=文件大小($newStr);
}否则{
//不是档案
}
您需要使用preg\u replace\u callback()
+\w
->[\w./]