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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сравнение значений текстового файла с заданными

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: не работает скрипт сравнения значений текстового файла с заданными
uralpt
Отправлено: 23 Мая, 2011 - 05:44:31
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




/////// Ответ на эту тему найден. Может, кому пригодится. См. внизу страницы /////////////////

Доброго времени суток.
Вот как бы код..... Всю ночь... нипонимать моя...

<?php

//Есть 2 строки: q1 - тектовые строка, выдернутая из текстового файла,
// q2 - название файла
//Задача - сравниваем второй элемент строки q2 с первым значением первого столбца price.txt (q1)


$q2_orig = "14 11 09 42 A.jpg"; //Это строка, в которой интересует значение "11"
$q2_orig = explode(" ", $q2_orig);
$q2 = $q2_orig[1]; //Получаем значение "11" в q2


$price = "price.txt"; //Это файл, который дербаним

$q1_line = file ($price); //Делим прайс по строкам
$line = count($q1_line); //Количество строк в файле прайса

for ($i=0; $i<$line; $i++) { //В цикле получаем 1-е значение 2-го столбца
$q1_tab = explode("\t", $q1_line[$i]); //Делим строку по табуляции
$q1_tab_pr = explode(" ", $q1_tab[1]); //Делим по пробелам
$q1 = $q1_tab_pr[0]; //Это значение из файла


echo "Значение ".$q1." сравниваем со значением ".$q2."<br>";

if ($q1 == $q2) {
echo "yes__".$q1."==".$q2."<br>";
}
else {
echo "no__".$q1."<>".$q2."<br>"; //В этом месте стучу в морду монитору
}
echo "<br>";
}
?>

Рядом текстовый файл, с которым сравниваем.
PS. скорее всего ляп какой-то но найти не могу.
Скачать файл: price.txt
Скачан раз: 110

(Отредактировано автором: 23 Мая, 2011 - 23:47:28)

 
 Top
komprenda
Отправлено: 23 Мая, 2011 - 05:55:28
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Май 2011  


Помог: 3 раз(а)




uralpt пишет:
Доброго времени суток.
Вот как бы код..... Всю ночь... нипонимать моя...

<?php

//Есть 2 строки: q1 - тектовые строка, выдернутая из текстового файла,
// q2 - название файла
//Задача - сравниваем второй элемент строки q2 с первым значением первого столбца price.txt (q1)


$q2_orig = "14 11 09 42 A.jpg"; //Это строка, в которой интересует значение "11"
$q2_orig = explode(" ", $q2_orig);
$q2 = $q2_orig[1]; //Получаем значение "11" в q2


$price = "price.txt"; //Это файл, который дербаним

$q1_line = file ($price); //Делим прайс по строкам
$line = count($q1_line); //Количество строк в файле прайса

for ($i=0; $i<$line; $i++) { //В цикле получаем 1-е значение 2-го столбца
$q1_tab = explode("\t", $q1_line[$i]); //Делим строку по табуляции
$q1_tab_pr = explode(" ", $q1_tab[1]); //Делим по пробелам
$q1 = $q1_tab_pr[0]; //Это значение из файла


echo "Значение ".$q1." сравниваем со значением ".$q2."<br>";

if ($q1 == $q2) {
echo "yes__".$q1."==".$q2."<br>";
}
else {
echo "no__".$q1."<>".$q2."<br>"; //В этом месте стучу в морду монитору
}
echo "<br>";
}
?>

Рядом текстовый файл, с которым сравниваем.
PS. скорее всего ляп какой-то но найти не могу.


первой строкой напиши error_reporting(E_ALL);

$q1_line = file ($price, FILE_IGNORE_EMPTY_LINES); // пустые строки зачем они вообще там?
 
 Top
SAD
Отправлено: 23 Мая, 2011 - 07:37:57
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




 
 Top
uralpt
Отправлено: 23 Мая, 2011 - 18:03:52
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




komprenda пишет:
первой строкой напиши error_reporting(E_ALL);


ошибки и так игнорируются. Просто это вырезанный кусок из основного скрипта.

komprenda пишет:

$q1_line = file ($price, FILE_IGNORE_EMPTY_LINES); // пустые строки зачем они вообще там?


А откуда там возьмутся пустые строки?

Но попробовал, все равно одно и то же.


Кусок результата выполнения скрипта:

Значение 10 сравниваем со значением 11
no__10<>11 //С этим согласен

Значение 11 сравниваем со значением 11
no__11<>11 //А вот это нипонимать...
(Добавление)
SAD пишет:
http://php.su/functions/?levenshtein


сделал сразу в цикле

$q1_line[$i] = trim ($q1_line[$i]); //А то строка длинная (больше 255 символов)
echo "strlen= ".strlen($q1_line[$i])."<br>"; //Посчитаем символы


Все равно результат шокирует:

strlen= 55
Значение 10 сравниваем со значением 11
no__10<>11 ////Согласен

strlen= 77
Значение 11 сравниваем со значением 11
no__11<>11 ////Ну почему?


На всякий случай приводил сравниваемые значения и к string, и к int... не помогает.
Где еще собака порылась?
(Добавление)
SAD пишет:
http://php.su/functions/?levenshtein


Сделал сравнение как

if (levenshtein ($q1, $q2) == 0) {
echo "yes__".$q1."==".$q2."<br>";
}
else {
echo "no__".$q1."<>".$q2."<br>"; //В этом месте стучу в морду монитору
}


Все равно утверждает, что значение "11" в q1 не равно "11" в q2
 
 Top
uralpt
Отправлено: 23 Мая, 2011 - 20:11:31
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




нашел-таки

вот как представляется число "11" в ASCII выдранное из нотепада:

strlen(11)= 5
0
49
0
49
0

т.е. между цифрами находится "NULL"

теперь дело техники

PS. вот что значит выспаться Улыбка))
(Добавление)
PS.
лечим:
$q1 = strip_tags($q1);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB