пятница, 31 октября 2008 г.

Функция для вывода анонс

Функция для вывода анонса для новостей, статей, рефератоф, сообщений, ответов на вопросы и для всего остального, где требуется прежде анонсировать информацию.
function countstr( $str, $count=100 ){
$arr = explode(' ', strip_tags( $str
) );
$str = '';

for ($i=0; $i<=$count; $i++){
$str .=" ".$arr[$i];
}

return $str;
}

Не большая, но нужная функция написанная на PHP. По умолчанию выводиться 100 слов из текста. При выводе анонса вырезаются все теги, к анонсам часто прикрепляют картинки и если у вас картинки не выводятся отдельно от текста новости, то нужно изменить следующую строчку $arr = explode(' ', strip_tags( $str ) ); на $arr = explode(' ', strip_tags( $str, "<img>" ) );, также вы можете добавить и другие теги, которые бы хотели видеть в анонсе.

Запускается функция следующим образом:
$str = 'Здесь полный текст новости';
echo countstr( $str );
Чтобы изменить количество выводимых слов в анонсе достаточно изменить функцию countstr( $str ); на countstr( $str, 250 ); число 250 показывает количество слов выводимых в анонс.

среда, 29 октября 2008 г.

Объявление переменных _POST

В PHP после отправки данных методом POST , объявление переменных происходит через массив _POST, который появился в PHP 4.1. Можно упростить объявление и обработку переменных методом _POST и избавить себя от лишних строчек кодописания.

Объявления и обработка переменных выглядит следующим образом:

$login = $_POST['login'];
$psw = $_POST['password'];
$email = $_POST['email'];

//Обработка переменной логин
$login = trim($login);
$login = strip_tags($login);
$login = htmlspecialchars($login);
$login = addslashes($login);

//Обработка переменной пароль
$psw = trim($psw);
$psw = strip_tags($psw);
$psw = htmlspecialchars($psw);
$psw = addslashes($psw);

//Обработка переменной логин
$email = trim($email);
$email = strip_tags($email);
$email = htmlspecialchars($email);
$email = addslashes($email);


* This source code was highlighted with Source Code Highlighter.


Тоже самое действие можно сделать и более простым кодом:
$vars = $_POST;
foreach (array_keys($vars) as $key){
${$key} = trim($vars[$key]);
${$key} = strip_tags(${$key});
${$key} = htmlspecialchars(${$key});
${$key} = addslashes(${$key});
}


* This source code was highlighted with Source Code Highlighter.

Ещё проще выше приведённый код можно представить так:
$vars = $_POST;
foreach (array_keys($vars) as $key){
${$key} = addslashes( htmlspecialchars( strip_tags( trim( $vars[$key] ) ) ) );
}


* This source code was highlighted with Source Code Highlighter.


Данный упрощённый способ можно представить в виде функции, но для того чтобы данная функция заработала вам придётся пренебречь безопасностью, чего я вам не советую делать, включив переменную register_globals в php.ini. При использование данного метода не значительно повышается время исполнения кода, где-то на 21% - это десятитысячные доли мили секунд, так что данный способ вполне можно использовать не опасаясь.

вторник, 28 октября 2008 г.

User API ВКонтакте с этого дня доступна на userapi.com

Сервис предназначен для быстрого построения соц. сети (заявленное минимальное время — 5 мин.)
Новые сети будут использовать данные сети ВКонтакте (пользователи, фото, etc.).
При монетизации проекта: доходы будут делиться на 60% хозяину, 40% User API. Подробнее в уловиях пользования User API.

Документация проекта.

Из блога Дурова:

Мы считаем, что будущее интернета находится в руках отдельных пассионарных личностей, многие из которых сейчас читают это сообщение. Поэтому мы запускаем проект User API В Контакте, который позволяет любому желающему без затрат создавать отдельные социальные сети в различных странах мира.

Благодаря User API ВКонтакте (http://userapi.com), Вы можете создать аналог ВКонтакте, например, в Корее (Южной) или Чехии и будете обладать полным контролем над собственной социальной сетью, ее функциями, внешним видом и доходами. В то же время, Вы сможете делать это на основе единой базы данных ВКонтакте с уже существующими миллионами пользователей и миллиардами фотографий.

Наш опыт говорит о том, что развитие социальных сетей и интернета в целом в большинстве стран мира находится в самом начале пути. Независимо от того, кто Вы — опытный программист или новичок в мире технологий, при определенных усилиях Вы можете создать социальную сеть, которая займет лидирующие позиции в отдельной стране и начнет приносить доход в сотни тысяч долларов.

Мы берем на себя заботы о поддержании серверной инфраструктуры — то, в чем мы накопили немалый опыт. Всем желающим мы предлагаем сделать то, в чем они разбираются лучше нас: выбрать доменное имя в национальной доменной зоне, адаптировать социальную сеть под определенную страну, культуру и язык.


Подробная информация о User API ВКонтакте

среда, 22 октября 2008 г.

PHP-скрипт прогноза погоды для сайта скачать бесплатно

Не большой скрипт предназначенный для грабинга погоды с сайта gismeteo.ru, а именно скрипт открывает с сайта gismeteo.ru данные из XML файла и разбирает его на составляющие.

Скрипт просто в использовании вам достаточно знать ID вашего города, узнать ID вашего города вы можете на сайте http://informer.gismeteo.ru/xml.html, далее выбираете в списках страну и город, например, страна Россия город Москва. Находим url следующего вида
http://informer.gismeteo.ru/xmlinf/27612_1.xml из него мы берём последнюю часть 27612_1.xml для того чтобы нам вывести погоду на сайте нужно скачать архив Weather, скачать его можно по следующей ссылке [скачать 53.1 Кб].

После чего распаковываем архив, открываем файл weather.php убираем всё что там есть и вставляем следующее 5 строчек, не забывайте
  1. require_once'class.weather.php';
  2. $w = new Weather;
  3. $w->ConnectCache('28367_1.xml');
  4. echo $w->city;
  5. echo $w->weather;
* This source code was highlighted with Source Code Highlighter.

Потом закидываем на хостинг и запускаем weather.php и вот у вас погода в Москве на 24 часа вперёд.

Данные полностью разобраны вы можете изменять класс как вам угодно, вывести данные тоже, возможно, как угодно, для этого открываем файл class.weather.php, он, более менее, от комментирован.

Есть возможность кешировать данные и задавать время обновления, по умолчанию 7200 сек или 2 часа, в приведённом выше примере данные кешируются, для того чтобы задать время кеширование посмотрите след. пример., т.е. через 3 часа кеш-файл обновиться.
  1. require_once'class.weather.php';
  2. $w = new Weather;
  3. $w->ConnectCache('28367_1.xml','10800');
  4. echo $w->city;
  5. echo $w->weather;
* This source code was highlighted with Source Code Highlighter.
Для того чтобы вывести данные без кеширования достаточно изменить одну строчку, смотрите след. пример.
  1. require_once'class.weather.php';
  2. $w = new Weather;
  3. $w->Connect('28367_1.xml');
  4. echo $w->city;
  5. echo $w->weather;
* This source code was highlighted with Source Code Highlighter.
Переменная $w->city это название города, а переменная $w->weather это погода в городе.

Скрипт больше всего подходит для создания блока погоды на сайте, но вы можете зменить его как вам угодно. Сразу предупрежу быдло пыхпых код. Вопросы предложения пожелания в комментариях.

Могут возникнуть проблемы с функцией file_get_contents() т.к. на некоторых хостингах директива allow_url_fopen в php.ini выключена и включить её через .htaccess не получится.