0

这是我的功能:

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+\Sor\w+\W吗?我尝试了这两个,甚至(...)但它仍然没有工作。如何让我的上述函数识别 {('')} 中的任何字符,无论它们是普通的 abc 字符还是空格。我确信这很简单。我已经对谷歌和这里进行了研究,但无法找到解决方案。(如果有帮助的话,任何给定页面上都会有多个 {('')} 实例)。我已经使用这个功能有一段时间了,但想添加包含空格的功能。谢谢!

4

1 回答 1

0
'(\w+)'

\w是所有字母数字字符和下划线 - 不包括空格。只需使用字符集:

'([\w\s]+)'
于 2012-04-29T00:42:16.603 回答