2016-06-07 5 views
0

디렉토리에서 모든 파일 내용을 검색했습니다. 배열로부터 파일 내용 이름을 인쇄합니다. 그러나 나는 파일 내용 이름의 일부만을 원한다. 어떤 생각이라도 이걸 어떻게 얻을 수 있니? 나는 다음과 같은 사용하여 시도했다 : 디렉토리에서배열 내의 PHP에서 단어의 일부 문자열 제거

파일 내용을 한 형식 : 나는 단지 101m1백2리터

를 검색 할 pdb101m.ent.gz, pdb102l.ent.gz
<?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

사용 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>'; 

} 

편집 :이 그래서 쿼리에 사용한다 :

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']; 
    } 
} 
영업 새로운 요청에 참석하는 내 대답을 업데이트
+0

친애하는 Nacho에게 출력을'101m.en'으로받습니다. – Razoir

+0

다시 시도하십시오. @Razoir substr 함수의 세 번째 인수를 수정했습니다. –

+0

'foreach ($ files as $ ex) { $ search = substr ($ ex, 3,4); $ sql = 'SELECT DISTINCT'pdb_code'에서 pdb WHERE'pdb_code' <>'.' $ search'. '제한 6'; $ result = mysql_query ($ sql) 또는 die (mysql_error()); while ($ row = mysql_fetch_array ($ result)) { $ pdb [] = $ row [ 'pdb_code']; } } – Razoir

0

항상인 경우 beggining에서및 .ent.gz 끝에서 당신은 간단하게 수행 할 수 있습니다

echo substr('pdb101m.ent.gz',3,-7); 
substr()에서 세 번째 매개 변수의

음의 값은 많은 문자가 문자열의 끝에서 생략한다

을 의미