2010-11-18 29 views
0

我在数据库中的一些文件名与点开始喜欢
.file456 .file593正则表达式替换浸渍特定的名称

我想知道我怎么可以过滤那些以点在PHP

启动文件

谢谢

+1

你不需要一个正则表达式。只需检查'$ filename {0} ==“。”'。在mySQL中:'SELECT ... FROM tablename WHERE filename LIKE“。%”' – 2010-11-18 16:58:23

+0

当你想要处理它们时,文件名是什么形式?你是否已经从数据库中提取它们并将它们放入数组中? – Orbling 2010-11-18 17:06:03

回答

0

你不会需要一个正则表达式。

只是检查

if ($filename{0} == ".") .... 

在MySQL:

SELECT ... FROM tablename WHERE filename LIKE ".%" 

或在文件系统中,使用glob像这应该工作:

glob("/path/to/dirname/.*"); 

(虽然这威力抓住目录,你可能需要检查)

1

为什么不在你的初始SQL查询中做到这一点?

WHERE 'columnname' LIKE ".%" 

您可能希望用字符替换列名周围的撇号(')。

如果您需要在PHP然后通过记录迭代时,你可以这样做:

if(substr($recordvalue,0,1)=="."){ 

//do this 

} 

例如

for($i=0;$i<$numberofrecords;$i++){ 
    if(substr($record[$i],0,1)=="."){ 

    //do this 

    } 
} 

请注意,SQL替代方法效率更高。

如果你想使用的preg_replace替换出发点(而不是其他点)的东西,使用(例如):

$pattern="/^\./"; 
$replacement="yourstring"; 
$record=".file593.jpg"; 
echo preg_replace($pattern,$replacement,$record); 
// would output 'yourstringfile593.jpg' 
+0

我需要它在PHP中。谢谢 – user512438 2010-11-18 16:59:14

+0

修改了一些选项:) – SW4 2010-11-18 17:11:14