删除数组中PHP中单词的一些字符串

时间:2016-06-07 07:17:34

标签: php

我已经从目录中检索了所有文件内容。它从数组中打印文件内容名称。但是,我只想要一部分文件内容名称。知道我怎么能实现这个目标?我尝试过使用以下内容:

目录中的文件内容格式为: 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>';

}


?>

请帮忙。荷。

2 个答案:

答案 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()中第三个参数的负值表示

  

字符串

的末尾将省略许多字符