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