我的数据库中有一些以点开头的文件名 .file456 .file593
我想知道如何过滤那些以php开头的文件
感谢
答案 0 :(得分:1)
为什么不在初始SQL查询中执行此操作?
WHERE 'columnname' LIKE ".%"
您可能希望使用`characters。
替换列名称周围的撇号(')如果您在PHP中需要它,那么在迭代记录时,您可以这样做:
if(substr($recordvalue,0,1)=="."){
//do this
}
e.g。
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'
答案 1 :(得分:0)
你不需要正则表达式。
只需检查
if ($filename{0} == ".") ....
在mySQL中:
SELECT ... FROM tablename WHERE filename LIKE ".%"
或在文件系统中,使用这样的glob应该有效:
glob("/path/to/dirname/.*");
(虽然这个也可能抓住目录,你可能需要检查一下)