Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: как получить имя файла (русский текст)
Форумы портала PHP.SU » » Работа с файловой системой и файлами » как получить имя файла (русский текст)

Страниц (1): [1]
 

1. beza - 20 Октября, 2014 - 20:25:16 - перейти к сообщению
Есть папка с .txt файлами. Нужно прошерстить всю папку, выбирая в цикле поочередно все файлы с получением имени файла и содержисого. Как получить сожержимое знаю, как организовать перебор и вытянуть имена файлов - увы...
Папку можно указать и ручками, главное - получить последовательно имена всех файлов. Как это сделать? Названия в файлах на кирилице (например Файл номер один, файл номер два и т.д...)
2. dcc0 - 20 Октября, 2014 - 20:56:17 - перейти к сообщению
Может, scandir?
http://www.php.su/scandir
3. Dastor - 20 Октября, 2014 - 21:08:56 - перейти к сообщению
Для таких целей я обычно использую функцию glob

http://php.net/manual/ru/function.glob.php
4. beza - 20 Октября, 2014 - 21:33:16 - перейти к сообщению
Нашел на просторах интернета такую схему - вполне себе работает. Выдает все файлы из директории 1/1/

$ndirct = "1/1";
$nhdl=opendir($ndirct);
while ($nfile = readdir($nhdl))
{
if (($nfile!=".")&&($nfile!=".."))
{
$na[] = $nfile;
$f = fopen("1/1/".$nfile, "r");
echo $nfile;
$qr_result2 = mysql_query("INSERT INTO statyi (Var1) VALUES('".$nfile."')")
or die(mysql_error());
}
}

closedir($nhdl);
if (sizeof($na)!=0)
{
rsort($na);
$vsego=sizeof($na);

}

else
{
echo ("Нет новостей в базе<br><br><a href=news/add_news_form.php>Добавить новость?</a>");
die;
}

Осталась проблема с кодировкой - русский текст отображается в виде кракозяб ( ����� ���� ) Причем кракозябы на php-странице отображаются, а в mysql вообще не заносятся. Я так понимаю, что нужно переконвертировать в из win-1251 в UTF-8.
То, что нашел из советов с форумов ни один не работает...
(Добавление)
Вставляем это:
$in_UTF=iconv("windows-1251", "UTF-8", $nfile);
echo $in_UTF.'<br>';
...и все работает!

 

Powered by ExBB FM 1.0 RC1