假设我在一个文件夹中有5个文件。文件名如下所示
现在我想从文件名中获取“()”括号之间的字符串,并希望将它们保存在文本文件中。
因此输出将保存在文本文件中,如下所示
email_a@domain.com
email_b@domain.com
email_c@domain.com
email_d@domain.com
email_e@domain.com
我试过这段代码
<?php
foreach (glob("./ABC/*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
答案 0 :(得分:1)
正如安德鲁所说,最好用正则表达式完成。
$files = scandir('folder/');
foreach($files as $file) {
preg_match("/(?:\\((.*)\\))/", $file, $matches); # Or "/\((.*)\)/" by Andrew
var_dump($matches);
}
答案 1 :(得分:0)
您可以使用preg_match通过正则表达式解决此问题。所以在这种情况下使用以下代码:
preg_match('/\(.*\)/', $filename, $matches);
$new_file_name = substr($matches[0],1,strlen($matches[0])-2); //skip the openning and closing parenthesis
现在$ new_file_name将只包含括号之间的数据。
希望有所帮助