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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML сохранить как TXT 
:(
    Опции темы
shurik86
  Дата 19.2.2008, 04:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня проблема такая, есть файл *.nfo (информация о системе) он в формате XML.
Для вывода на экран я воспользовался парсером.
Но, мне необходимо в этом файле найти определенные слова которые находятся в масиве.
Поиск по XML файлу упорно производить не хочет smile , пробовал его сохранять как *.txt после парсера, но эффект тот же.

Вот код самого поиска

Код

<?php
$arr=array (1 =>"Norton Internet Security" , 2 =>"NOD32", 3 =>"AVG", 4 =>"Spybot" );
$file = fopen("H:\\diplom\\system.nfo", "r");
  $filename="H:\\diplom\\system.nfo";
  $list=fread($file, filesize($filename));  
  foreach ($arr as $value){
   $compet = stripos ($list, $value);
   if ($compet!==false) {
   if ($value==Spybot) echo ('Attention!!! Spybot have installed on system <br>');
   //   echo $value;
   }
   echo "<br>";

?>


А вот сам вопрос.
Можно ли както сохранить *.nfo (информация о системе) как Текстовый файл, или может использовать какую-то другую функцию для поиска.

Всем спасибо за любую инфу. smile 

С ув. Shurik
PM MAIL   Вверх
patience
Дата 19.2.2008, 09:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(shurik86 @  19.2.2008,  04:17 Найти цитируемый пост)
Для вывода на экран я воспользовался парсером.


Почему бы не выяснить содержит ли документ нужный вам текст во время парсинга, можно также попробовать поискать используя
xpath (если видна структура документа)
Dom
SimpleXml


Код

$arr=array (1 =>"Norton Internet Security" , 2 =>"NOD32", 3 =>"AVG", 4 =>"Spybot" );
...
 if ($value==Spybot)

Кавычки "Spybot"

ИМХО, сохранять хмл в текст это так сказать не очень есть хорошо )) (текст в текст)

Это сообщение отредактировал(а) patience - 19.2.2008, 09:57
PM MAIL   Вверх
awers
Дата 20.2.2008, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



а как на счет 
Код

$file_data = file_get_contents('file.ifo');
$arr=array ("Norton Internet Security" , "NOD32", "AVG", "Spybot" );
foreach($arr as $needle){
if (preg_match("!$needle!si",$file_data)) die('Installed: '.$needle); 
}


вроде так... ну на скорую руку
PM MAIL WWW ICQ Skype   Вверх
shurik86
Дата 4.3.2008, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Почему бы не выяснить содержит ли документ нужный вам текст во время парсинга


пробовал так именно с самого начала, не нашло (((


Цитата

можно также попробовать поискать используя xpath (если видна структура документа)


надо попробывать посмотреть ))

Цитата

а как на счет код PHP
$file_data = file_get_contents('file.ifo');
$arr=array ("Norton Internet Security" , "NOD32", "AVG", "Spybot" );
foreach($arr as $needle){
if (preg_match("!$needle!si",$file_data)) die('Installed: '.$needle); 

}


вроде так... ну на скорую руку


к сожалению тоже не помогло ((((


PM MAIL   Вверх
awers
Дата 5.3.2008, 15:03 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

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



shurik86, содержимое файла в студию
PM MAIL WWW ICQ Skype   Вверх
shurik86
Дата 2.4.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



awers тебе нужно сожержимое nfo ? в котором произодится поиск?
Или я чет не так понял? ))) smile 

Это сообщение отредактировал(а) shurik86 - 2.4.2008, 17:28
PM MAIL   Вверх
mishaSL
Дата 2.4.2008, 18:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



shurik86, ты правильно понял. Нужно содержимое XML файла и словестное описание того что надо найти. 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
shurik86
Дата 4.4.2008, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я приатачил файл sys.rar в нем находится файл sys.nfo это собственно тот файл к котором надо и совершить поиск.
В данном примере (файле) содержится слово NOD32 вот его то мне и надо найти. 

Буду очень признателен если ктото сможет мне с этим помочь smile


ЗЫ. и еще вопросик
Как боротся вот с этим 

"Warning: fread(): supplied argument is not a valid stream resource in C:\Server\www\adminpage.php on line 61  "

код в котором ошибка

Код

while ($data=fread($fp, 10240))




Спасибо!! С ув. Shurik smile

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  sys.rar 50,19 Kb
PM MAIL   Вверх
Fortop
Дата 27.4.2008, 14:31 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



shurik86,  у тебя кодировка файла UTF-8. А значит и работать с ним надо через http://ua.php.net/manual/ru/ref.mbstring.php

Поскольку сам ты код пишешь не в UTF-8, то для начала
каждую строку в массиве, надо сконвертировать в UTF-8

Код

$arr=array (1 =>"Norton Internet Security" , 2 =>"NOD32", 3 =>"AVG", 4 =>"Spybot" );


вот примерно так 

Код

iconv("ISO-8859-1", "UTF-8", "This is a test.");


А потом уже можешь использовать MB функции для поиска

Добавлено через 4 минуты и 55 секунд
P.S. Из 4х приведеных тобой значений в файле есть только NOD32


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
shurik86
Дата 14.5.2008, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Fortop спасибо, пробую

Я нашел в MB-функциях аналогичную функцию stripos  -  mb_stripos.  Поидее она должна работать, вот щас чтото пытаюсь перекодировать мой массив в UTF-8.

Но чтото безрезультатно, всеравно почемуто ненаходит ((( может и я чтото не так делаю  smile  smile 

Код

<?php

$arr=array (1 =>"Norton Internet Security" , 2 =>"NOD32", 3 =>"AVG", 4 =>"Spybot" );
$file = fopen("C:\\Temp\\sys.nfo", "r");
  $filename="C:\\Temp\\sys.nfo";
  $list=fread($file, filesize($filename));  
  foreach ($arr as $value){
    $value=iconv("ISO-8859-5", "UTF-8", "Test");
    $compet = mb_stripos ($list, $value);
    if ($compet!==false) {
    if ($value==Spybot) echo ('Attention!!! Spybot have installed on system <br>');
    if ($value=='Norton Internet Security') echo ('Attention!!! Norton Internet Security have installed on system <br>');
    if ($value==NOD32) echo ('Attention!!! NOD32 have installed on system <br>');
    if ($value==AVG) echo ('Attention!!! AVG have installed on system <br>');
    //    echo $value;
    }
    echo "<br>";
}
?>
      


Это сообщение отредактировал(а) shurik86 - 14.5.2008, 00:20
PM MAIL   Вверх
Fortop
Дата 17.5.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

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



Цитата(shurik86 @  14.5.2008,  00:16 Найти цитируемый пост)
Но чтото безрезультатно, всеравно почемуто ненаходит ((( может и я чтото не так делаю


Потому что вертолет.
Код

    var_dump(mb_detect_encoding($list));


Лень мне возится.
Вот так работает.
Код

<?php
$arr=array (1 =>"Norton Internet Security" , 2 =>"NOD32", 3 =>"AVG", 4 =>"Spybot" );
    $list = file_get_contents("C:\\Temp\\sys.nfo");
    $dom = new DomDocument();
    $dom->load("C:\\Temp\\sys.nfo");
    $r = $dom->getElementsByTagName('Value');
    foreach ($arr as $value) {
        foreach ($r as $n) {
            if (false !== stripos($n->nodeValue, $value)) {
                echo 'FOUND = ' . $value . '<br>';
                break;
            }
        }
    }



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
shurik86
Дата 17.5.2008, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Fortop спасибо большое, работает  smile 
PM MAIL   Вверх
IZ@TOP
Дата 22.5.2008, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



Блин, ребят, все куда проще. Конвертить ISO вообще не нужно, в принципе - если там нет символов отличных от латиницы.

Код

<?php

$file = 'path/to/file';
$haystack = array("norton", "nod32", "spybot");
if(preg_match_all("/(?<found>" . implode('|', $haystack) . ")/uis", file_get_contents($file), $matches)) {
   echo "Found: ";
   foreach ( $matches['found'] as $found) { echo "$found,"; }
} else {
   echo "Not found";
}

?>


Добавлено через 2 минуты и 21 секунду
Хотя лучше конечно проверять с помощью соответствующих средств (DOM, SimpleXML). И куда проще будет, скорее всего, использовать XPath.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




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


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

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