Jump to content

vartem

User
  • Posts

    23
  • Joined

  • Last visited

Posts posted by vartem

  1. ?насч?т движка, а то я подумаю, что он даже нормально работает, и можно его всем советовать, новичкам?

    Уже сказали же, что он НЕ нормально работает в ФФ, смотреть еще где-то желания нет.

  2. Я не понял причем здесь вообще array_merge()? :/ Из вопроса вижу, что надо найти расхождения в массивах, для этого используется функция array_diff().

    <?
    $first = (array)file('data1.txt');
    $second = (array)file('data2.txt');
    $arr = array_diff($first, $second);
    foreach($arr as $s)
    echo rtrim($s)."
    n";
    ?>

  3. Yarik Voronov, да, у php были и есть проблемы с кодировками и с юникодом, в частности. Сейчас вроде ведутся работы в шестой версии: обрабатывают все функции на корректность работы с юникодом. Что получится ? увидим :) Но, честно говоря, эти проблемы зачастую проходили мимо меня, так что беру информацию со слухов :)

    при генерации xml и при парсенге xml на сервере РНР не понимает другой кодировки кроме utf-8

    Что подразумеваете под генерацией? И что используете для генерации, парсинга?

    У меня обычно при работе в php над xml идет полностью английский, а значит ? проблемы с кодировками врятли могут возникнуть. Пару раз при работе с русским и использовании SimpleXML была проблема с генерацией выходного XML. Как Вы сказали, выдавался результат в юникоде ? не смотря на то, что перед этим парсился документ с указанной кодировкой ? windows-1251 (причем, парсился он в корректной кодировке; хотя, может быть, мне показалось). Не помню как обходил проблему, первое, что сейчас приходит в голову, ? функции iconv?

  4. В последней цитате, на сколько я правильно ее понимаю, речь идет не о кодировке, а о сущностях. О том, что по умолчанию они читаются в кодировке UTF, а если указать кодировку ? в указанной кодировке.

    Никаких ограничений на кодировку в XML нет, кроме того, что эта кодировка должна существовать и ?быть известной? (см. http://www.iana.org/assignments/character-sets).

    //добавлено

    между делом, я согласен, что в XML лучше использовать UTF :)

  5. Kel-Tanas, у меня такое ощущение, что мы о разных вещах. Вы говорите, как лучше применять в ?общем? случае ? причем я не раз уже соглашался с Вами; я говорю о конкретном случае, привел доводы (которые Вы почему-то переносите опять же на ?общий? случай) и никак не пойму в чем проблема ? поэтому дальнейшего желания продолжать тему у меня нет.

  6. Но для массивов есть специальный цикл. Его и рекомендуется использовать.

    Еще можно

    reset($array); 
    while(list($key, $val) = each($array));

    Специальный цикл для массивов? Поясните, пожалуйста, правда интересно? Давайте откажемся от foreach при работе с классами, в этом случае? Или воспользуемся array_walk, чтобы совсем все усложнить, ? однако используем функцию, предназначенную именно для массивов?

    Кем рекомендуется? Я не зря написал про время выполнения. Не поленился и проверил (провел тест над каталогомами, в которых более 2к файлов) ? из трех (наверное, пока) конструкциий: while( isset($names[$i++]) ), foreach($names as &$v) и while(list($key, $val) = each($array)) ? лучшую производительность показывает именно первая, самая простая конструкция.

    Ведь достоверно неизвестно, какие индексы присутствуют, а какие нет.

    Вот если есть массив

    $a = array(1=>'a', 2=>'b', 4=>'d', 5=>'e');

    Вопрос на засыпку. Какие элементы этого массива переберет твой код?

    Ну почему же? Достоверно известно, что результатом будет пустой массив (если ничего не нашлось) или простой индексированный массив от 0 с дальнейшим увеличением индекса на 1. Здесь я, кстати, согласен: если бы был ассоциативный (смешанный и т.п.) массив, то foreach ? лучший выбор по всем показателям. Даже приведенный массив $a обработается foreach`ом, благо ? такого не получится и while переберет все найденные имена файлов.

  7. vartem, давайте, тогда уж и массив перебирать foreach-ем, а не while-ом, словно программисты каменного века.

    while теперь в прошлом веке, оказывается. Мне просто, кажется, что while сработает в данном случае быстрее, хотя в современном мире, с такими мощностями, ? какая разница?

    ООП пропускать не в коем случае нельзя. Надо сидеть и разбираться. Терпение и труд все перетрут.

    Абсолютно согласен с этим.

    Kel-Tanas, куда-то нас занесло :) ну да ладно?

  8. тип столбца notes.date текстовый (varchar и т.п.) чтоли? ? лучше так не делать :)

    Чтобы вывести дату в таком (?12 декабря 2007?) формате, можно использовать функцию strftime, которая не везде работает.

    Иначе, с помощью функции date("n", timestamp) получайте номер месяца в дате и с помощью вспомогательного массива выводите строковой эквивалент.

    В частности для строки ?2007-12-12? (пусть она хранится в переменной $date, 2007 ? год, 12 (первое число) ? месяц, 12 (второе) ? день), можно воспользоваться

    $a = explode("-", $date);
    $year = $a[0];
    $mounth = $a[1];
    $day = $a[2];
    $rus_m = array("января", "февраля", [и так далее]);
    $a = strtotime($mounth."/".$day."/".$year);
    print $day."<sup><u>е</u></sup> ".$rus_m[((int)date("n", $a))-1]." ".$year."<sup><u>го</u></sup> года";

    код не проверял, но должен работать?//всеже проверил :)

  9. Kel-Tanas, мне казалось, что данный пример остался со времен php младше версии 4.3.

    Сейчас все это возможно сделать используя функцию glob, которая все найдет по ?маске? и даст результат сразу в массив. Просто хотелось, чтоб человек понял код, который привел.

    $names = glob("records/rec*");

    ______________________________________

    Добавлено:

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

    $names = glob("records/rec*");
    $i = 0;
    while( isset($names[$i++]) ) $names[$i-1] = substr($names[$i-1], 11);

  10. $entry = $dir_rec->read()

    Откуда следует, что это чтение именно следующего файла?

    Порядок считывания файлов определяется порядком их нахождение в ОС

    Что вообще за оператор "->" ? Я встречал в массивах только "=>"

    Далее, команда read() она вообще откуда?

    -> ? говорит php, что следует обратиться к методу или свойству какого-то класса. В данном случае, классом является dir, а read() метод этого класса. (формально ? это не ООП конечно)

    В документации о ней я не нашел ни слова (конкретно в разделе, посвященному "dir").

    Внимательней надо смотреть :)

    С условием так и не понял.. Зачем какой-то "rec"?

    Кто-то к чему прибавляется, при этом отсекается..

    В PHP всегда такие заморочки? Нет более понятного способа считать файлы из каталога?

    Для этого надо видеть код целиком. Здесь нет заморочек :) Есть более понятный способ ? opendir(), readdir(), closedir()?

  11. $entry = $dir_rec->read()

    читаем имя следующего файла/каталога в папке ?records?. Если кончилось, то получим false, именно false (то есть в коде есть маленький баг).

    substr($entry,0,3)=="rec"

    в переменной $entry у нас хранится имя файла/каталога. Соответственно, предыдущий код проверяет первые три символа в имени ? если это "rec", то в массив $names добавляем следующий элемент ? строка, состоящая из имени файла/каталога с отсеченными первыми тремя буквами

  12. post, сокеты ? откуда? об этом никто не говорил?

    Если речь о моей последней фразе, я имел в виду отправку следующих заголовков:

    header("WWW-Authenticate: Basic realm="lalalala"");
    header("HTTP/1.0 401 Unauthorized");

    и последующуя проверку по переменным:

    $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW']

  13. Что будет если кто-то просмотрит?

    Тогда он увидит хеш логина, пароля и ip? :)

    Кстати, по поводу ip ? какая необходимость создавать его хеш и засовывать в куки? Его можно вычислять на лету, причем ? никто не будет знать, что ты используешь эту проверку при авторизации. Однако эта проверка наносит ряд ограничений: у некоторых пользователей с каждым заходом в сеть ip меняется в пределах некоторого диапозона, а значит, проверку необходимо делать не по полному ip, а лишь по его части.

    Вообще говоря, идеально безопасной авторизации не существует, особенно ? при использовании cookie. Часто рекомендуют также проверять по заголовку ?User Agent?? Если задача авторизации состоит в том, чтобы помнить авторизованного на протяжении только одной сессии работы с сайтом, то стоит задуматься о стандартных методах авторизации пользователя с помощью посылки специальных заголовков?

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy