За последние 24 часа нас посетил 17291 программист и 1627 роботов. Сейчас ищут 1265 программистов ...

Снова нужна помощь со скриптом. Разбивка содержимого. +md5

Тема в разделе "Вопросы от блондинок", создана пользователем EvelRus, 28 май 2011.

  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Добрый вечер. Помогите, пожалуйста написать скрипт, не знаю даже с чего начать...

    есть текстовый файл в 25000 строк, примерно, надо разбить его на файлы по 1000 строк в каждом, а потом вывести на экран с паузой в 10 секунд (для разгрузки процессора)
     
  2. Status-X

    Status-X Активный пользователь

    С нами с:
    14 май 2011
    Сообщения:
    2
    Симпатии:
    0
    Начни с загона строк файла в массив:D
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Так, с одним разобрался, теперь другая проблема...почему-то не совпадают md5 в БД и сделанный вручную...
    PHP:
    1. <? $h_word     = mysql_real_escape_string(trim($buffer));
    2. echo 'Слово:'.md5($h_word);?>
    Если убираю трим, то вставляется перевод строки, а на экране получаю
    У меня получается хеш 31c39035a55cea92052e27ed248c8d27, а должен a579a0ce8809e1196246a6efe20e1e95
     
  4. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    а mysql_real_escape_string() нафига? в базу нужно пихать md5(), который оборачивать в mysql_real_escape_string(), а не наоборот
     
  5. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    просто есть слова с апострофами, например и их надо обработать
     
  6. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    в БД данные попадут без эскейпов, значит снимай хеш с неизменных стартовых данных
     
  7. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Смотри, убрал все...

    PHP:
    1. <?
    2. $handle = fopen("./word/1.txt", "r");
    3.     while (!feof($handle))
    4.     {
    5.         $buffer = fgets($handle);
    6.         $sql_res =  mysql_fetch_row(mysql_query('SELECT count(*) FROM `word` WHERE '.$db ['desc']['word'].' = "'.$buffer.'" LIMIT 1'));
    7.         if ($sql_res[0] == 0)
    8.         {
    9.             // Добавление слова в базу
    10.             $h_word     = trim($buffer);
    11. mysql_query("INSERT INTO `word` VALUES ('".$h_word."')
    И все равно в базу попадают не верные данные
     
  8. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    а трим где?

    и вообще че означает этот код? данные посылаемые в запрос нужно эскейпить. Но не снимать хеши с эскейпленных данных
     
  9. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Ой, да, исправил... см. выше
    В базу добавилось без всего лишнего, но хеш все равно 31c39035a55cea92052e27ed248c8d27 вместо a579a0ce8809e1196246a6efe20e1e95

    PS: Задача проверить слово и хеш, но не проверяет :((
    При этом делал тоже самое с цифрами от 0 до 9 и все работает нормально :(
     
  10. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    кодировка?

    не там трим, ты из файла точно без переноса строки читаешь?
     
  11. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    кодировка windows:ansi, в БД все нормально, кроме хеша)))

    Насчет переноса... как в коде, так и тащу... а с переносом или нет, фиг знает :oops:

    Код (Text):
    1. АД
    Вот так выглядит файл в текстом... именно с пустой стройкой в конце
     
  12. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    тогда не триммуй, а удаляй \r и \n вручную, стринг_реплейсом
     
  13. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Тоже самое :(
    Код (Text):
    1. $h_word     = str_replace(array("\r","\n"),"",$buffer);
     
  14. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Сделал так

    Код (Text):
    1. if ($sql_res[0] == 0)
    2.         {
    3.             $h_word     = 'АД';
    4. echo ($h_md5.'<br />');
    5. }
    тоже показывает не правильный md5 (((
    Проверяю тут http://www.sd-company.su/online/crypt.php
     
  15. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    у строки АД хеш 31C39035A55CEA92052E27ED248C8D27

    (я использую небольшую прогу http://desksoft.ru/index.php?downloads= ... nts&id=363 , в самом нижнем поле вводим текст и получаем MD5. Если из проводника перетянуть файл на окно программы то посчитается md5 и crc32 для него)
     
  16. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    elkin@elkin-N53SV:~$ php -r 'echo md5("АД");'
    a579a0ce8809e1196246a6efe20e1e95
     
  17. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    a579a0ce8809e1196246a6efe20e1e95 - utf-8
    31c39035a55cea92052e27ed248c8d27 - ansi
     
  18. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    antonn
    а зачем эскейпить хэш?)
     
  19. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    я пользуюсь своей функцией которая все эскейпит, привычка :)
     
  20. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Блин, а вот это хреново :(
     
  21. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    Nemo
    либо использовать iconv, либо менять кодировку базы данных. в чём проблема-то ?
     
  22. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Проблема в том, что слово на странице может набираться в утф, а может в анси, а хеш будет разный :(
     
  23. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    это как? делай всё в utf-8, как вывод на странице, так и в базе. и будет тебе щастье :)