我已经从目录中检索了所有文件内容。它从数组中打印文件内容名称。但是,我只想要一部分文件内容名称。知道我怎么能实现这个目标?我尝试过使用以下内容:
目录中的文件内容格式为: pdb101m.ent.gz , pdb102l.ent.gz 我只想检索 101m 和 102l
<?php
$dir = "C:/Users/Desktop/EAD/PDB/";
$files = array();
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
foreach($files as $ex){
echo str_replace('pdb.ent.gz', ' ', $ex). '<br>';
}
?>
请帮忙。荷。
答案 0 :(得分:0)
使用substr()功能:
echo substr('pdb101m.ent.gz',3,4); // Outputs: 101m
echo substr('pdb102l.ent.gz',3,4); // Outputs: 102l
所以:
foreach($files as $ex){
echo substr($ex, 3,4). '<br>';
}
编辑:更新我的答案,参加OP新请求: 因此,在您的查询中,您应该使用:
foreach ($files as $ex) {
$search = substr($ex, 3, 4);
$sql = 'SELECT DISTINCT `pdb_code` FROM pdb WHERE `pdb_code` <> "' . $search . '" LIMIT 6';
$result = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$pdb[] = $row['pdb_code'];
}
}
答案 1 :(得分:0)
如果在结束时始终为pdb
,在结束时始终为.ent.gz
,则可以执行以下操作:
echo substr('pdb101m.ent.gz',3,-7);
substr()
中第三个参数的负值表示
字符串
的末尾将省略许多字符