Всё-таки JavaScript — очень бедный язык по сравнению с PHP. Например, генерация случайного числа в интервале 10-20 на php решается одной строчкой rand(10,20). В JavaScript нужно писать с нуля аналог:

function rand(min, max) {
    if (max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    } else {
        return Math.floor(Math.random() * (min + 1));
    }
}

(далее...)

Не буду говорить для кого и с какой целью расшифровывал, лучше напишу как это делать. (далее...)

По мотивам песни "Choose life"

выбери PHP

Теги: PHP

Guide to Enterprise PHP Development Если вы запускаете большой проект на php, эта книга несомненно будет ценным ресурсом для вас и вашей группы разработчиков. Написанное хорошо известными гуру php, это исчерпывающее руководство покрывает все, что вы должны знать: развитие php, планирование, безопастность, оптимизация, тестирование, развертывание, методологии разработки, дебаг и многое другое.
скачать Guide to Enterprise PHP Development (10 Мб, формат PDF)
Книга на английском!

Недавно мне понадобилось перенести информацию из excel-файла в базу данных. Для этого я использовал класс Spreadsheet_Excel_Reader. Это php-класс, который создан для чтения excel-документов. Простой пример ниже иллюстрирует работу класса.

<?php
require_once ('/excel/reader.php'); // подключаем класс

$Excel = new Spreadsheet_Excel_Reader(); // создаем объект
$Excel->setOutputEncoding('cp1251'); // устанавливаем кодировку
$Excel->read('filename.xls'); // открываем файл
$count = $Excel->sheets[0]['numRows']; // узнаем количество строк в 1 листе

// с помощью цикла выводим все ячейки
for ($rowNum = 1; $rowNum <= $count; $rowNum++) {
    echo $Excel->sheets[0]['cells'][$rowNum][1]; // 1 столбец
    echo $Excel->sheets[0]['cells'][$rowNum][2]; // 2 столбец
    echo $Excel->sheets[0]['cells'][$rowNum][3]; // 3 столбец
}
?>

Например, $Excel->sheets[0]['cells'][2][1] обращается к ячейке, которая находится в первом листе, 2 строка, 1 столбец. Если ваши данные находятся в 3 листе нужно писать $Excel->sheets[2] (нумерация начинается с нуля).

Скачать класс Spreadsheet_Excel_Reader

Теги: excel, PHP

Понимаю, что тема избита, но сам постоянно натыкаюсь на сайты, открывающиеся как с www, так и без.
Почему это плохо?
1) проблемы с поисковиками. Для поисковиков сайты с www и без www – 2 разных сайта. Это хорошо видно в Яндексе, который проиндексировал сайт wimax с www и без www. Такое дублирование понижает основной сайт в поисковой выдаче за счет «размытия» контента на 2 сайта.

индексация сайта с www и без www дублирование контента
На момент написания статьи я уже исправил ситуацию с wimax.
Сейчас в Яндексе висит только один основной сайт wimax.comstar.ru
читать дальше

Наткнулся в чужом коде на очередной WTF. Вместо встроенной функции nl2br() использовалась конструкция

$message = str_replace("\n", "<br />", $message);

Прежде чем что-то написать откройте документацию PHP или посмотрите в гугле – возможно там вы найдете готовое решение вашей проблемы. У PHP имеется огромное количество встроенных функций для решения многих задач. Есть даже встроенная функция easter_date() для расчета дня Пасхи для любого года

<?php
echo date("M-d-Y", easter_date(2000)); // Apr-23-2000
echo date("M-d-Y", easter_date(2001)); // Apr-15-2001
?>

Не изобретайте велосипед!

Случайные числа

Теория

Технически термин «генератор случайных чисел» – это абсурд, так как числа сами по себе не являются случайными. Например, 100 – это случайное число? А 25? Что в действительности означает этот термин, так это то, что создается последовательность чисел, появляющихся случайным образом. Это порождает более сложный вопрос: что такое последовательность случайных чисел? подробнее о случайных числах

Шаблонизатор Smarty

Smarty – один из самых известных шаблонизаторов. Шаблонизатор нужен для разделения PHP-кода от HTML-кода. Если первый раз с этим сталкиваешься, преимущества такого подхода заметны не сразу, но потом ты удивляешься, как раньше мог обходиться без шаблонов. Особенности Smarty?

SimplePie SimplePie - это удобный php-класс для импорта RSS. Поддерживает следующие версии каналов: RSS (0.90, 0.91, 0.92, 1.0, 2.0), Atom (0.3, 1.0). Это open-source по лицензии BSD, т.е. в отличие от GPL-лицензии вы можете внедрять SimplePie в свои коммерческие продукты и не задумываться об оплате. подробнее о SimplePie

Данный код позволяет быстро сериализовать массив. Например, это нужно чтобы сделать update поля в базе, где значение лежит в виде сериализованного массива.
demo
исходный код ?