这是我的功能:
function grabstuff()
{
foreach (glob("../folder/*.php") as $fn)
{
$file = file_get_contents($fn);
preg_match_all("#\{\('(\w+)'\)}#", $file, $matches);
foreach ($matches[1] as $match)
{
$query = ("ALTER TABLE xxxxx ADD COLUMN `$match` LONGTEXT AFTER xxxxx;");
$result = mysql_query($query) or die("Err: ".mysql_error());
}
}
}
以下是页面上的内容:
<?/*{('test test')}*/?>
它忽略了这个有空格的实例。它适用于testtest和test_test。没有得到任何PHP错误或mysql错误。我需要使用\w+\S
还是\w+\W
?我尝试了这两个,甚至(...),它仍然无法正常工作。我如何让我的上述函数识别{('')}中的任何字符,无论它们是普通的abc字符还是空格。我确信这很简单。我已经在谷歌和这里做过研究,但无法找到解决方案。 (如果有帮助,任何给定页面上都会有多个{('')}实例。我一直在使用这个功能一段时间,但是想添加包含空格的功能。谢谢!
答案 0 :(得分:0)
'(\w+)'
\w
是所有字母数字字符和下划线 - 不包括空格。只需使用字符集:
'([\w\s]+)'