2010-11-18 31 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