Alkönyvtárakban keresés PHP
Sziasztok!
az alábbi script kilistázza a "dir1" nevű könyvtárat, majd kiírja azokat a fájlokat, amelyekben találat volt. A kérdésem az, hogyan lehetne azt megcsinálni, hogy a script ALKÖNYVTÁRAKBAN is keressen?
tehát pl.
dir1/valami.html
dir1/dir2/valami.html
A script a következő:
<?
print "
<form action=".$_SERVER['PHP_SELF']." method='post'>
<input type='text' name='keresendo' value='' />
<input type='hidden' name='s' value='1' />
<input type='submit' value='Keres' />
</form>";
if($_POST["s"]=="1"){
$list=array();
$path = "dir1";
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
if($file != "." && $file != "..") {
$list[]=$file;
}
}
closedir($dh);
$key=$_POST["keresendo"];
$found='';
for ($i=0;$i<count($list);$i++) {
$file=file($path ."/". $list[$i]);
for ($j=0;$j<count($file);$j++)
if (strpos($file[$j],$key)>-1) {
$found[]=$list[$i];
break;
}
}
for ($i=0;$i<count($found);$i++)
print "<a href='dir1/$found[$i]'>$found[$i]</a><br />";
}
?>
előre is köszönöm a segítségeteket!
■ az alábbi script kilistázza a "dir1" nevű könyvtárat, majd kiírja azokat a fájlokat, amelyekben találat volt. A kérdésem az, hogyan lehetne azt megcsinálni, hogy a script ALKÖNYVTÁRAKBAN is keressen?
tehát pl.
dir1/valami.html
dir1/dir2/valami.html
A script a következő:
<?
print "
<form action=".$_SERVER['PHP_SELF']." method='post'>
<input type='text' name='keresendo' value='' />
<input type='hidden' name='s' value='1' />
<input type='submit' value='Keres' />
</form>";
if($_POST["s"]=="1"){
$list=array();
$path = "dir1";
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
if($file != "." && $file != "..") {
$list[]=$file;
}
}
closedir($dh);
$key=$_POST["keresendo"];
$found='';
for ($i=0;$i<count($list);$i++) {
$file=file($path ."/". $list[$i]);
for ($j=0;$j<count($file);$j++)
if (strpos($file[$j],$key)>-1) {
$found[]=$list[$i];
break;
}
}
for ($i=0;$i<count($found);$i++)
print "<a href='dir1/$found[$i]'>$found[$i]</a><br />";
}
?>
előre is köszönöm a segítségeteket!
Rekurzív
is_dir
ha nem megy annyira, akkor az említett rekurzív dirlister a php.net-ről (az opendir-nél az első post)
m_walk_dir
utánanéztem a dolgoknak és találtam egy megfelelő scriptet, ami az alkönyvtárakat is beolvassa, viszont nem tudom összehozni a kettőt! tudnál nekem ebben segíteni? itt a script:
<?php
clearstatcache();
$sourcepath = "dir1/";
$root = ereg_replace( "/$", "", ereg_replace( "[\\]", "/", $sourcepath ));
if( false === m_walk_dir( $root, "m_touch_file", true )) {
echo "'{$root}' is not a valid directory\n";
}
function m_walk_dir( $root, $callback, $recursive = true ) {
$dh = @opendir( $root );
if( false === $dh ) {
return false;
}
while( $file = readdir( $dh )) {
if( "." == $file || ".." == $file ){
continue;
}
call_user_func( $callback, "{$root}/{$file}" );
if( false !== $recursive && is_dir( "{$root}/{$file}" )) {
m_walk_dir( "{$root}/{$file}", $callback, $recursive );
}
}
closedir( $dh );
return true;
}
function m_touch_file( $path ) {
echo $path . "<br>";
if( !is_dir( $path )) {
touch( $path );
}
}
?>
előre is köszönöm a segítségedet!
here is it
thanx!
thanx!
Pred