PDA

Просмотр полной версии : как прочитать содержимое всех файлов


Leon2009
25.04.2010, 17:00
Здравствуйте! не могу сообразить: вывод искомой строчки из одного фала получается а из всех файлов немогу.

<?php
$dir = "/home/localhost/www/tmp";
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
{
$files[] = $filename;
}
sort($files);
print_r($files);
rsort($files);
print_r($files);

$file=file;
$homepage = file_get_contents ( $file );
$string=$homepage;
$find="Текст который ищется в файлах";
if (strpos ($string, $find) === FALSE)
{
echo 'netu text1<br>';

}
else
{
echo "<br><br>text= ",$find;
echo "<a href='$file'>vash fail</a>";
}
?>

Спасибо! :confused:

$now
25.04.2010, 17:27
$file=file; - это что подразумевалось?

Вы составили массив из файлов, теперь поиск в файле поместите в цикл


foreach ($files as $file) {
// тут ваш код обработки файла
}

Leon2009
25.04.2010, 17:30
$file="file.txt"; когда один файл ставлю читает, а все файлы нет

$now
25.04.2010, 17:31
Leon2009 см. предыдущий мой пост

Failure
26.04.2010, 00:26
2 Leon2009

<?php
$dir = scandir("."); //папка в которой файлы
foreach($dir as $file) {
if($file !== '.' && $file !== '..' && $file !==substr(strrchr(__FILE__, "/"), 1)) { //слэш наверно прийдется поменять на \ (в винде в путях бэкслеш, так что ориентируйся сам)
$tmp = file_get_contents($file);
//...... делаешь с этим что хочь
}
}
?>

2 XPYMGT, так питон (интерпретируемый скриптовый), яву(объектный) или си(компилируемый, не объектный)?
Давай не говорить лишнего (тем более того чего не понимаем) и не оффтопить ;)

Deathdreams
26.04.2010, 00:29
//слэш наверно прийдется поменять на \ (в винде в путях бэкслеш, так что ориентируйся сам)
константу DIRECTORY_SEPARATOR ещё никто не отменял.

Leon2009
26.04.2010, 03:35
Спасибо! за помощь, вобщем вот что у меня получилось:
scandir - он наверное для php5, у меня стоит Апаче с 4м, я так думаю, т.к выдавал ошибку.
<?php
$dir = "/home/localhost/www/tmp";
$dh = opendir($dir);
while (false !== ($filename = readdir($dh)))
{
$files[] = $filename;
}
foreach($files as $file)
{
if($file !== '.' && $file !== '..' && $file !==substr(strrchr(__FILE__, "/"), 1))
{
$homepage = file_get_contents ( $dir."/".$file );
$string=$homepage;
$find="1111";
if (strpos ($string, $find) === FALSE)
{
echo '<br>netu text1<br>';
}
else
{
echo "<br>text= ",$find;
echo "<br>link-<a href='$dir.'/'.$file'>vash fail</a>";
}
}
}
?>
не смог тока разобрать строчку:<a href='$dir.'/'.$file'> путь к файлу пишет /home/localhost/www/tmp. - но название файла уже нет. ставлю <a href='$file'> пишет название файла но путь уже не пишет. т.е localhost/1.txt или /home/localhost/www/tmp одно из двух :D как тока не минял там значение :confused:

Vlad&slav
26.04.2010, 14:41
Пишу с компа друга , поэтому не провекрял.
Должно работать по идеи :D
<?php
ini_set('set_time_limit',0);
ini_set("memory_limit", "528M");
set_time_limit(0);
error_reporting(0);

function _readdir($d,&$files) {
global $opendir;
$dir = opendir ($d);
while ( $file = readdir ($dir))
{
if (( $file != ".") && ($file != ".."))
{
$opendir=$d.'/'.$file;
if(filetype($opendir)=="dir")
{
_readdir($opendir,&$files);
}
else
{
$files[] = $opendir;

}
}
}
closedir ($dir);
}

$stroka = '@mail.ru'; // то ищем в файлах. типа текст
_readdir('/home/',&$files); // ТУт указываем полный путь до папки которую нужно ....

foreach ($files as $index) {
$pamparam = file_get_contents($index);
if (strstr($pamparam, $stroka)) $results .= $index.', ';
}

echo "Уважаемый хакер, тест '$stroka' был найден в $results файлах!";
?>

Leon2009
26.04.2010, 19:45
Спасибо! я не знал что можно на память лемит ставить!

XPYMGT
26.04.2010, 19:59
Мое сообщение о вредности пэхэпэ неизвестно кто и по какой причине удалили, удалите тогда и высер в мою сторону со стороны неизвестного мне человека выше