Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кракозябры в названии файлов, проблемы с кодировками 
:(
    Опции темы
Finder128
Дата 1.9.2010, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



Суть проблемы в следующем. Имеются веб-страницы с кодировкой utf-8, лежащие в локальной папке. Их необходимо запарсить. Парсингом занимаются два скрипта: основной и подключаемый через require,  содержащий функции, к которым обращается основной скрипт. Скрипты также имеют кодировку utf-8. Так вот содержимое страниц отображается правильно, а названия страниц предстаёт в виде каких-то иероглифов. Установливаю в парсящих скриптах кодировку cp-1251 и названия страниц отображаются правильно, но зато не парсятся страницы. Как быть?
PM MAIL   Вверх
bars80080
Дата 1.9.2010, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а что такое "названия страниц"? откуда считывается сей параметр?
PM MAIL WWW   Вверх
Finder128
Дата 1.9.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 15.3.2008

Репутация: нет
Всего: нет



Имеется в виду адрес на локальной машине. Объясню подробно. Есть папка "Украина" лежащая в www, то есть доступ к ней через localhost. В этой папке - подпапки с названиями областей Украины, в каждой веб-страницы скопированные с википедии, содержат информацию о районах Украины. Названия веб-страниц вида: такой-то район такой-то области. 
Короче, вот код:
Код

require("functions.php");

set_time_limit(300);
 //$d=dir();



$root="Украина";

if ($handle = opendir($root)) {
     //for($u=11;$u<841;$u=$u+10){
   while (false !== ($file = readdir($handle))) {
    //$link="$link/$file";
        echo "file $file <br>";
        $res=check_files($file);

               if($res==0){

                  $address="$root/$file";

                $files= get_dir($address);

                foreach($files as $element){

                $res2=check_files($element);
                //echo "$address $element <br>";
                     if(strstr($element,".htm")<>""){
                         $buffer="$address/$element";
                         echo "$buffer <br>";
                          $content=file_get_contents($buffer);
                             get_wiki($content);
                         }

                /*



                         */


                        }


                        }
    //$file="$u.htm";



       }

   closedir($handle);
//}
  }


Функция get_wiki
Код

  $p1=strpos($object,"Страна");
                                                           $p2=strpos($object,"Часовой пояс");
                                                           echo "p1 - $p1 <br>";
                                                           $length=$p2-$p1;
                                                           $string=substr($object,$p1,$length);
                                                           $pattern="/<P>.*?</";

                                                           $res=preg_match_all($pattern,$string,$matches);
                                                           $count=0;
                                                           foreach($matches[0] as $element){
                                                           echo "$element <br>";
                                                           //if(strstr($element,"место")<>""){
                                                           //echo "$element <br>";
                                                           //if(strstr($element,"км")<>""){
                                                             $pattern="/\d+\s\d+/";
                                                                 $res=preg_match_all($pattern,$element,$matches2);

                                                                 foreach($matches2[0] as $object){
                                                                 echo "$object <br>";

                                                                 }

                                                                 //echo "population - ".$matches[0][0]."<br>";

                                                                 //}

                                                           //echo "res $res <br>";






                                                           }
                                                           //echo "data - $territory $population <br>";

                                        }


PM MAIL   Вверх
bars80080
Дата 1.9.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



честно говоря, не видно, чтобы что-то где-то записывалось, но вполне очевидно, что если вы работаете в UTF-8, вплоть до всех операций в скриптах, то адреса папок и файлов будут также сохраняться в этой кодировке, что из-под винды будет выглядеть только кракозябрами. там где формируется адрес добавьте его преобразование с помощью функции iconv() и всё
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.