我的问题隐藏了这个字符串:Mage::helper('catalog/image')->init($product, 'image', $image->getFile())->resize(265)
我正试图找到一种方法来找到这个字符串。但是...在字符串中是:$ product,image和265变量。
所以我需要找到如下字符串:
Mage::helper('catalog/image')->init($product, 'image', $image->getFile())->resize(265)
Mage::helper('catalog/image')->init($product, 'thumb', $image->getFile())->resize(75)
Mage::helper('catalog/image')->init($image, 'mini', $image->getFile())->resize(25)
等...
现在我有了这个,但它只是搜索Mage::helper('catalog
function listFolderFiles($dir){
$ffs = scandir($dir);
foreach($ffs as $ff){
if($ff != '.' && $ff != '..'){
if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
if(strpos($ff, '.phtml')!==false){
$contents = file_get_contents($dir.'/'.$ff);
$pattern = preg_quote("Mage::helper('catalog", "/");
$pattern = "/^.*$pattern.*\$/m";
if(preg_match_all($pattern, $contents, $matches)){
echo "Found matches in: ".$dir.'/'.$ff."\n";
}
else{
echo "No matches found in: ".$dir.'/'.$ff."\n";
}
}
}
}
}
listFolderFiles('../app/design');
答案 0 :(得分:1)
显然不需要"/^.*$pattern.*\$/m"
,preg_match_all
或$matches
$pattern = "/Mage::helper\('catalog\/image'\)->init\([^)]+?image->getFile\(\)\)->resize\(\d+\)/";
if ( preg_match($pattern, $contents) ) {
// do stuff
}
这将匹配包含"Mage::helper('catalog/image')->init(Ximage->getFile())->resize(Y)"
,
的任何字符串
其中X
是一个或多个不是)
的字符,而Y
是一个或多个数字。