6 фрагментов кода PHP для взаимодействия с Twitter


Содержание

PHP в HTML

PHP — это встраиваемый серверный язык программирования. Большая часть его синтаксиса заимствована из C , Java и Perl . А также добавлена пара уникальных характерных только для PHP функций . Основная цель этого языка — создание динамически генерируемых PHP HTML страниц .

PHP в HTML

При создании сложных веб-страниц вы столкнетесь с необходимостью объединить PHP и HTML для реализации конкретных задач. На первый взгляд это может показаться сложным, так как PHP и HTML являются двумя независимыми дисциплинами, но это не так. PHP предназначен для взаимодействия с HTML , и его код может быть включен в разметку страницы.

В HTML-страницы PHP-код включается с помощью специальных тегов. Когда пользователь открывает страницу, сервер обрабатывает PHP-код , а затем отправляет результат обработки ( не сам PHP-код ) в браузер.

HTML и PHP довольно просто объединить. Любая часть PHP-скрипта за пределами тегов игнорируется PHP-компилятором и передается непосредственно в браузер. Если посмотреть на пример, приведенный ниже, то можно увидеть, что полный PHP-скрипт может выглядеть следующим образом:

Приведенный выше код — это обычный HTML с небольшим фрагментом PHP , который выводит текущую дату, используя встроенную функцию date . При этом весь HTML будет игнорироваться PHP-компилятором и передаваться в браузер без изменений.

Интегрировать PHP в HTML действительно очень легко. Помните, что скрипт — это HTML-страница с включением определенного PHP кода . Можно создать скрипт, который будет содержать только HTML (без тегов ), и он будет нормально работать.

Более продвинутые методы:

PHP в HTML с помощью short_open_tag

Если нужно максимально сократить код, перед тем, как в PHP вставить HTML , вы можете использовать short_tags . В результате не нужно будет вводить php.ini и переключить значение параметра « short_tags » с « Off » на « On «. Хотя на большинстве серверов этот параметр уже включен, всегда лучше проверить это вручную. Проблема, которая может возникнуть при использовании коротких тегов — это конфликт при использовании XML . В XML синтаксическое выражение PHP в HTML не стоит полагаться на short_tags .

HTML в PHP с использованием echo

Еще один способ интеграции HTML в PHP-файл — команда echo: .

Возможное, но не рекомендуемое использование:

Это повлияет на подсветку разметки в большинстве редакторов. Поэтому необходимо выделять все двойные кавычки внутри HTML-кода с помощью обратной косой черты.

PHP в HTML — расширения файлов

Файл, содержащий PHP в HTML , должен иметь расширение .php .Также можно настроить файл .htaccess для чтения PHP-кода в HTML-файлах без изменения расширения. Ниже приведены « обработчики «, которые нужно добавить, чтобы настроить эту функцию.

Для стандартно настроенного веб-сервера :

Для веб-сервера с запущенным FastCGI :

HTML в PHP

Также можно использовать HTML-код в PHP-скриптах . Все, что нужно сделать, это при открытии страницы с помощью PHP изменить порядок открывающихся тегов HTML и PHP .

Использование HTML в PHP :

Такая вставка PHP в HTML позволяет использовать намного меньше кода. Здесь мы используем глобально $PHP_SELF , что позволяет использовать значения полей, указанные под ними, в том же файле. Как правило, для таких форм создается два файла: первый — сама HTML-форма , а второй — PHP-файл , который выполняет обработку.

Если у вас уже есть сложные PHP-приложения , которые используют большое количество файлов, и вы хотите упростить, этот метод может помочь.

Данная публикация представляет собой перевод статьи « PHP in HTML » , подготовленной дружной командой проекта Интернет-технологии.ру

Автоматические сообщения в Twitter через PHP (Twitter API, OAuth)

dev.twitter.com сделал очередные обновления в дизайне и функционале. Довёл статью до актуального состояния.

dev.twitter.com изменил расположение кнопок и меню, инструкция обновлена до актуального состояния.

Статья о том, как написать скрипт на php для автоматического управления своей twitter страницей. Скрипт даст возможность: писать сообщения, удалять сообщения, узнавать статус, кол-во фолловеров, последнюю запись и многое другое!

Все действия в работе с Twitter API (для аутентификации) выполняются при помощи механизма OAuth.

Для использования Twitter API нужно добавить своё приложение на dev.twitter.com, далее я написал подробную, пошаговую инструкцию о регистрации twitter-приложения, а затем как это приложение использовать с помощью php-скрипта.

1. Вход в dev.twitter.com

Зайдите на страницу dev.twitter.com. Войдите в систему под логином и паролем, используемыми для входа в Ваш twitter аккаунт. Вход в систему осуществляется по нажатию кнопки «Sign in».

2. Создание приложения на dev.twitter.com

Войдите в меню вашего логина и выберите My applications. Вы войдёте на страницу ваших приложений, созданных на dev twitter.

Создайте новое приложение, нажав на кнопку «Create New App». Так, вы попадёте на страницу создания приложения, где вам предложат заполнить необходимые детали для работы приложения.

Введите название приложения (Name), описание приложения (Description), ссылку на веб-сайт вашего приложения (Website), ссылка на страницу с контактными данным (Callback URL) — это опция для указания страницы обратной связи, напр. «http://makefuture.net/feedback/». После заполнения всех необходмых данных, прочитайте правила и согласитесь (Yes, I agree), если согласны :), введите капчу и нажмите на «Create your Twitter application» (создать моё твиттер-приложение).

3. Настройка twitter приложения

После того, как вы создали приложение, вас направит на страницу с данными созданного приложения. Выберите вкладку «Settings» (настройки) для настройки иконки и других данных о приложении. Затем выберите вкладку «Permissions» (разрешения) — для настройки полномочий вашего приложения.

Выберите «Read, Write and Access direct messages» или другой вам подходящий вариант. Внимание! Для того, чтобы поставить эти настройки Вам необходимо указать свой номер телефона в твиттер аккаунте!

Read — приложение только читает, Read and Write — читает и записывает, Read, Write and Access direct messages — читает, записывает и может напрямую добавлять сообщения в твит.

После проведения всех необходимых настроек на этой странице, нажмите на кнопку «Update settings», находящуюся снизу, следом за настройками.

4. Сбор необходимых ключей

После того, как вы изменили настройки, зайдите на вкладку «API Keys» (ключи приложения).

Скопируйте к себе в блокнот ключи «API key» и «API secret», а затем нажмите на кнопку «Create my access token» (создать ключи безопасности), находящуюся ниже на странице.

После нажатия на кнопку «Create my access token», обновите страницу и под заголовком «Your access token» скопируйте ключи: «Access token» и «Access token secret».

5. Дело за малым! Осталось настроить сам PHP-скрипт отправки в twitter.

Сначала, загрузите нужную для работы библиотеку Abraham Twitter OAuth. Нам нужны только два файла: twitteroauth/twitteroauth.php и twitteroauth/OAuth.php. Всего в рабочей папке на вашем сайте, должно быть 3 файла, twitteroauth.php, OAuth.php и (наш скрипт) script.php.

Дополнительные возможности


Как удалить сообщение на twitter?
Замените строку:
на

Различная информация о вашем твите, которую вы получите с помощью переменной $content

Отправка сообщения с изображением в Twitter через PHP

1. Понадобится скачать класс «twitter-api-php» для работы с API Тветтера – https://github.com/J7mbo/twitter-api-php

2. Регистрируемся в твиттере если еще нет аккаунта.

3. Для отправки твитов через API нужно четыре ключа:

  • access_token ,
  • access_token_secret ,
  • consumer_key ,
  • consumer_secret .

Чтобы их получить нужно создать приложение.

3.1. Создаем приложение на странице https://apps.twitter.com/app/new

3.2. Переходим на вкладку «Keys and Access Tokens», там указаны consumer_key , consumer_secret .

3.3. Жмем «Create my access token», появятся access_token , access_token_secret .

Постинг в Twitter с помощью PHP (Twitter API, OAuth)

После того как 30 июня 2010 года в Twitter запретили механизм базовой аутентификации, все действия по работе с Twitter API (требующие аутентификации) нужно выполнять с помощью нового механизма OAuth. На первый взгляд новый API ужасно сложный. но на самом деле всё гораздо проще, чем кажется.

В этой статье я покажу, как с помощью PHP, используя Twitter API, можно изменить статус в Twitter (послать сообщение).

Предварительная настройка для использования Twitter API

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

Для использования Twitter API необходимо зарегистрировать свое приложение:

  • Зайдите на dev.twitter.com под своим логином и паролем, затем нажмите на ссылку «Register an app».
  • Заполните форму — скорее всего введенные данные никто не проверяет со стороны Twitter, но лучше все заполнить по уму. Главное нужно выбрать в пункте «Default Access type» опцию «Read and Write». Нажмите кнопку «Register Application».
  • Теперь вам нужно 4 ключа для работы вашего приложения. Перейдите по ссылке «View Your Applications», а потом нажмите на название вновь созданного приложения. Прокрутите страницу вниз и скопируйте «Consumer Key» и «Consumer Secret».
  • Дальше нужно нажать в правом меню ссылку «My access token» и скопировать: «Access Token (oauth_token)» и «Access Token Secret (oauth_token_secret)».

Нервничаете? Расслабьтесь, мы почти закончили — последнее, что нужно сделать: скачать библиотеку Abraham Twitter OAuth. В архиве библиотеки несколько файлов, но нам нужны только два: twitteroauth/twitteroauth.php и twitteroauth/OAuth.php.

Интеграция Twitter и PHP OAuth

Теперь напишем исходный код для опубликования сообщения в Twitter. Для этого достаточно нескольких строчек: нужно просто подключить библиотеку TwitterOAuth и использовать ключи для доступа к Twitter.

Царский блог

Философия программирования

Седлаем Twitter API 1.1

История темы

Как-то для одного из моих прожектов мне понадобилось автоматически размещение твиттеров из моей базы данных.

Помню года 3-4 назад это можно было делать через простые GET-запросы, но сегодня ситуация кардинально изменилась – видимо, спамеры Twitter достали всё-таки.

И в августе 2010 Твиттер представило новый API 1.0 на замену старому, где для изменения данных в аккаунте требовалась уже более серьёзная аутентификация, но для чтения опять же было достаточно простых запросов с именем-паролем.

Цукерберг рекомендует:  Вакансии Ippon Technologies

И вот Twitter созрел – он представил версию своего API 1.1, основные моменты которого таковы (https://dev.twitter.com/docs/api/1.1/overview)

  • JSON support only – да, теперь Twitter API поддерживает только формат JSON, они окончательно отказались от таких форматов, как, например XML и RSS.
  • Authentication required on all endpoints – теперь для работы с API для любых запросов (и чтение и изменение) требуется полная аутентификация через Twitter-приложения

Начинаем!

Итак, краткий курс в историю нас немного позабавил, но что нам теперь делать? Гуглить! Немного погуглив, я в одном из форумов наткнулся на фразу (в ответ на вопрос типа “Как мне публиковать твиттеры автоматически?”) одного человека – он просто написал – посмотри эту книгу, там всё написано. И дал ссылку – http://140dev.com/download/get_file.php?file=single-user-oauth&type=pdf

Я скачал эту PDF книгу (это книга Адама Грина (by Adam Green) называется Single-User Twitter OAuth Programming, что в моём вольном переводе может означать “Однопользовательское программирование Twitter через OAuth“) – она бесплатна сейчас, Адам выложил её (и ещё пару своих e-книг) в свободный доступ на своём сайте здесь – http://140dev.com/member.

Поначалу я ничего не понял, но, вчитываясь и осмысливая куски кода в ней, я начал просвещаться! И нашёл решение своей задачи -публикация хотя бы одного поста в день из своей БД в мой твиттер. Вот как это делать:

Создаём приложение Twitter

Это сейчас обязательно. Это все делают, и facebook, и vk. Придумали свои приложения.

Заходим на https://dev.twitter.com

В правом верхнем углу нажимаем ссылку Sign in – вводим свои логин/пароль, затем в правом верхнем углу видим свой аватарчик – наводим на него курсор мыши, из pop-up меню выбираем My applications (Мои приложения), в итоге оказываемся здесь – https://dev.twitter.com/apps

Нажимаем ссылку (опять же справа) – Create application (Создать приложение), заполняем поля по своему выбору – Name (Имя), Description (описание), Website (сайт) и Callback URL (Адам Грин советует обязательно заполнить это последнее поле) – можно заполнить его так же как и поле Website.

Скроллим вниз, нажимаем галку Yes, I agree под кабальным договором (шутка), заполняем captcha (блин, как слово captcha перевести на русский без извращений?), сабмит формы и наше приложение создано.

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

Итак, на странице настройки приложения (нас сюда перекидывает сразу после создания, сюда же можно вернуться в любой момент из основной страницы https://dev.twitter.com/apps) – выбираем вкладку Setting (Настройки), скроллим вниз и меняем в разделе Application type радио-кнопку на Read and Write (Чтение/запись) – если мы планируем через это приложение менять что-то на нашем аккаунте или публиковать посты – а мы планируем это делать!

Итак, внизу сабмитим форму (Update this Twitter application’s settings), потом ждём пару минут и перезагружаем страничку – здесь Твиттер что-то тормозит и не сразу меняет статус нашего приложения на Чтение/Запись. Но теперь всё в порядке, убеждаемся, что после перезагрузки странички галка стоит на Read and Write, и переходим на вкладку Details (Детали).


Скроллим вниз и щёлкаем на Create my access token кнопку. И опять ждём пару минут и перегружаем страницу, чтобы увидеть свои новые данные для доступа (access token).

Они состоят из Access token и Access Token secret. что они означают, я особо не вникал, да нам это и не нужно. Всё, что нам теперь нужно, это запомнить свои (и публичные) данные доступа – можно сразу же в своём скрипте, где-нибудь в константах.

Я давний поклонник PHP, поэтому буду приводить код далее именно для этого языка, но для любого другого серверного языка (ASP, JSP, Ruby и т.д.) всё делаем аналогично, только конечно используем родной синтаксис этих языков.

Итак, в итоге для дальнейшего пользования этим приложением нам надо сформировать четыре константы – consumer_key, consumer_secret – два пользовательских ключа, они сразу определяются для приложения, и видимо, больше не меняются – это одноименные поля в разделе OAuth settings, и пара констант, назовём их как в книге Адама Грина – user_token и user_secret – это поля созданные нами Access token и Access token secret.

Копируем их в такой примерно скриптик (PHP):

(я скопировал эти ключи из книги Адама Грина, он пишет, что они более не валидные, но вы можете проверить, так ли это).

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

Всё, на этом заканчиваем с приложением и переходим к самому вкусному – постим твиты автоматом, а также читаем любые данные и твиты любого twitter-аккаунта (общедоступные, конечно, то есть те, что мы и так можем прочитать, используя свой любимый браузер Firefox/Chrome/Safari и т.п.)

Укрощаем Twitter API 1.1

Итак, для того чтобы выполнить нужное действие с Twiiter’ом, надо создать соединение, послать запрос и получить ответ. Twitter работает по собственному протоколу, вникать во все тонкости которого мы не будем (для особо пытливых ссылка эта – https://dev.twitter.com/docs/auth/authorizing-request) , а воспользуемся рекомендованной Адамом библиотекой – tmhOAuth library Мэта Харриса (by Matt Harris) (https://github.com/themattharris/tmhOAuth)

Для справки – другие библиотеки можно выбрать и попробовать здесь – https://dev.twitter.com/docs/twitter-libraries

Итак, что мы делаем? Скачиваем библотеку Мэта – файл tmhOAuth.php и в придачу к нему скачаем файл cacert.pem – это файл с сертификаторами, необходим для работы этой библиотеки. Учтите, что этот файл по умолчанию (если вы не будете залазить в код этой либы и менять там что-то) должен находиться в одной папке с самомй библиотекой (то есть файлом tmhOAuth.php)

Размещаем эти два файла на нашем сервере и пишем скрипт, которые авто-постит наши посты в Твиттер в нужное нам время:

В этом скрипте мы выбираем последние десять записей из нашей БД, и публикуем случайную из них. Я закронил этот скрипт на один раз в сутки, и теперь каждый день в моём твиттере за чашкой утреннего кофе я читаю свежий твит, опубликованный этим моим гениальным скриптом. А что вы хотели – всё гениальное – просто, и это не пустые слова.

Здесь самая важная и нужная часть – сформировать верный запрос.
Twitter API поддерживает десятки разных запросов, нам для реальной работы необходимо лишь два-три.

Запрос состоит из следующей части –

Первая строка в запросе (POST) – тип запроса GET/POST, для чтения будем использовать GET, для записи – POST. Так как мы публикуем новый твит, мы здесь используем именно POST (использование GET смотрите ниже).

Вторая строка в скобках (‘1.1/statuses/update’) – указание ресурса для действия (все доступные для данного API 1.1 ресурсы смотрите здесь – https://dev.twitter.com/docs/api/1.1). В него входит следующее:

1.1 – видимо, версия используемого API
statuses/update – название ресурса для действия, в данном случае мы просим твиттер опубликовать новый твит.

Третья строка – массив необходимых параметров (да, каждый параметр у нас должен быть элементом ассоциативного массива). В данном случае мы передаём один параметр с именем status и со значением строки нашего твита. Дополнительные параметры могут указываться здесь же, через запятую (так формируются несколько элементов массива в PHP).

Пример с несколькими параметрами смотрите ниже, где мы будем читать твиты! И выводить их на нашей страничке.

Читаем свои твиты и выводим их

А что далеко ходить – я сделал это для этого блога – http://atzar.ru/my_tweets/

Вот код чтения и вывода твиттеров из одного из моих твиитер-аккаунтов:

6 полезных PHP фрагментов кода

Здравствуйте уважаемые читатели XoZblogа! В одной из предыдущих статей я уже описывал несколько полезных PHP вставок кода. Так вот в продолжение той темы, 6 полезных PHP фрагментов кода. Вы можете использовать их в таком виде или добавить в какой-то Ваш класс.

Извлечение адресов email из текста

Когда-либо задавались вопросом, как спаммеры могут получать Ваш адрес электронной почты? Это просто, они рассматривают веб-страницы (такие как форумы), точнее код html, чтобы извлечь адреса электронных почт. Эта функция принимает в качестве параметра строковую переменную, и печатает все электронные письма, содержавшие в строке.

function extract_emails ( $str ) <
// Это регулярное выражение извлекает все электронные письма из строки:
$regexp = ‘/([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]<2,4>)+/i’ ;
preg_match_all ( $regexp , $str , $m ) ;

return isset ( $m [ 0 ] ) ? $m [ 0 ] : array ( ) ;
>
// Тестовый текст
$test_string = ‘This is a test string.
test1@example.org

Test different formats:
test2@example.org;
foobar

strange formats:
test5@example.org
test6[at]example.org
test7@example.net.org.com
test8@ example.org
test9@!foo!.org
foobar
‘ ;
// Получаем список адресов
print_r ( extract_emails ( $test_string ) ) ;

Определение числа читателей в Twitter

Что нужно чтобы узнать количество Ваших читателей в Twitter? Ну во-первых Twitter аккаунт, а во-вторых вот эта PHP функция) Параметром для функции является имя пользователя!

function get_followers ( $twitter_id ) <
$xml = file_get_contents ( ‘http://twitter.com/users/show.xml?screen_name=’ . $twitter_id ) ;
if ( preg_match ( ‘/followers_count>(.*) , $xml , $match ) != 0 ) <
$tw [ ‘count’ ] = $match [ 1 ] ;
>

return $tw [ ‘count’ ] ;
>
// Передаем функции имя пользователя, и узнаем количество читателей
$twitter = «XoZblog» ;
echo get_followers ( $twitter ) ;

Создание временного URL из строки

Здесь мы передаем в функцию строковую переменную, преобразуем строку в нижний регистр и заменяем все пробелы тире. Принцип как в текстовом редакторе WordPress, вводим заголовок статьи и сразу формируется URL страницы.

Преобразование значения HEX в RBG

Если у Вас есть задача получить значения RGB цвета, преобразованного из Шестнадцатеричного HEX номера цвета, это — функция для Вас.

Вывести на экран изображение пользователя Gravatar

Получить изображений пользователя Gravatar просто. Если у Вас есть адрес электронной почты пользователя, Вы должны захешировать email в MD5 и добавить его к gravatar URL.

Удаление ссылок из текста

Если есть необходимость убрать из текста все ссылки, то эта регулярочка для Вас.

_|$]/i’ , » , $string ) ;
echo $string ;

P.S.: Вы много находитесь в интернете?! Не забудьте выполнять очистку компьютера от временных и куки файлов. В этом Вам поможет программа ccleaner.

На этом все! Если возникнут вопросы или предложения пишем комментарии! До связи )

Чтобы оставаться в курсе свежих статей и уроков подписывайтесь на еженедельную почтовую рассылку или на новостную ленту RSS. Спасибо!


30+ лучших приемов PHP для начинающих

Дата публикации: 2010-04-14

От Автора: PHP – самый широко используемый в Сети язык программирования. Представляем тридцать с небольшим лучших приемов для новичков, желающих приобрести основные навыки — php для начинающих.

1. Подружитесь со справочником по PHP

Если вы новичок в PHP, значит, пришло время познакомиться с внушающим почтение справочником PHP. Справочник по PHP невероятно исчерпывающий и содержит действительно полезные комментарии к каждой статье. Перед тем, как задавать вопросы или пытаться самостоятельно разрешить проблему, сэкономьте время и просто возьмите курс на справочник. Ответы на ваши вопросы уже удобно разместились в полезной статье на сайте PHP.net.
В данном случае мы Вам рекомендуем поискать самостоятельно справочники на русском языке, лучше php для начинающих. Будем рады, если Вы дадите ссылке на полезные справочники в комментариях к статье (Просто учитывайте, что это перевод статьи).

2. Включите отчет об ошибках

Отчет об ошибках в PHP очень полезен. Вы обнаружите ошибки в своем коде, которых не замечали ранее, однако не все они препятствуют работе приложения. Есть разные уровни детализации отчета, которые можно использовать, но E_ALL будет одинаково представлять вам все ошибки, критические ситуации и предупреждения.

Цукерберг рекомендует:  Веб-разработка — создание персонального сайта

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

3. Попробуйте IDE

IDE (Integrated Development Environments/интегрированные среды разработки) – полезные инструменты для любого разработчика. Хотя они подойдут не для каждого, IDE определенно имеют свое значение. IDE обеспечивают такие инструменты, как:

Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Code completion (подсказки идентификаторов в редакторе кода)

Предупреждения об ошибках

Рефакторинг кода (переделка кода)

А также большое количество других возможностей. Существует множество отличных IDE, поддерживающих PHP.

4. Попробуйте PHP-frameworks

Вы можете многое узнать о PHP, просто экспериментируя с PHP-фреймворками. Такие фреймворки, как CakePHP или CodeIgniter, позволяют быстро создавать приложения PHP, даже если вы в нем не эксперт. В каком-то смысле они – дополнительные подпорки, которые показывают вам, каким образом должно выглядеть приложение PHP, и демонстрируют полезные концепции программирования (вроде отделения логики от дизайна и т.д.).

Возражение: лично я не советую новичкам пользоваться фреймворками. Сначала выучите основы.

5. Научитесь DRY

DRY – аббревиатура от Don’t Repeat Yourself, (Не Повторяйтесь), и это – полезная концепция программирования, без разницы на каком языке. DRY-программирование, как предполагается названием, гарантирует, что вы не пишете избыточного кода. Вот пример от Reinhold Weber:

теперь применением к нему подход DRY:

Более подробно о концепции DRY можно прочесть здесь и здесь.

6. Делайте отступы и используйте пробелы в коде для читаемости

Если вы не используете отступы и пробелы в коде, то результат выглядит, как картина Джексона Поллака (Jackson Pollack). Обеспечьте читаемость своего кода и нормальный поиск, потому что почти наверняка в будущем вы будете делать в нем изменения. IDE и современные текстовые редакторы могут автоматически делать отступы в коде.

7. Делайте код многоуровневым

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

8. Всегда используйте

Часто программисты пытаются использовать сокращения в операторах PHP. Вот как это обычно делается:

Хотя это действительно экономит несколько символов, все эти методы являются устаревшими и неофициальными. Придерживайтесь стандартного , так как это гарантированно будет поддерживаться всеми будущими версиями.

9. Используйте содержательные, последовательные названия

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

10. Комментируйте, комментируйте, комментируйте

Кроме использования пробелов и отступов для разделения кода, вам также придется использовать встроенные комментарии, чтобы снабжать примечаниями свой код. Позже вы поблагодарите сами себя, когда придется возвращаться и искать что-либо в коде, или если вы просто не помните того, что делала определенная функция. Это также полезно для тех, кому нужно просмотреть ваш код.

11. Установите MAMP/WAMP

MySQL — самый популярный вид базы данных, используемый с PHP (хотя и не единственный). Если нужно настроить локальное окружение для разработки и тестирования ваших PHP-приложений на компьютере, предусмотрите установку MAMP (Mac) или WAMP (Windows). Установка MySQL на ваш собственный компьютер может стать утомительным процессом, а оба этих программных пакета содержат MySQL. Ловко и просто.

12. Установите лимиты своим скриптам

Установка лимита времени на PHP-скрипты – очень ответственная вещь. Бывают моменты, когда скрипты выходят из строя, и когда это произойдет, вам придется использовать свойство set_time_limit (установить лимит времени), чтобы избежать бесконечно повторяющихся циклов и истечения таймаутов времени соединения с базой данных. Set_time_limit устанавливает лимит времени на максимальное количество секунд, за которое выполняется скрипт (по умолчанию 30). По истечении этого времени возбуждается неустранимая ошибка.

13. Используйте объекты (или ООП)

Объектно-ориентированное программирование (ООП) использует объекты, чтобы представлять компоненты приложения. ООП – это не только способ разбить свой код на отдельные логические секции, оно также снижает количество повторений кода и делает намного более легким его модифицирование в будущем.

14. Поймите разницу между одинарными и двойными кавычками

Использование одинарных кавычек в строках более эффективно, так как парсеру (синтаксическому анализатору) не приходится просеивать код в поиске специальных символов (прим. перев. escape-последовательностей) и прочих вещей, что позволяют двойные кавычки. Там, где это возможно, старайтесь всегда использовать одинарные кавычки.

Возражение: Собственно, это не обязательно верно. Тесты Benchmark показывают, что при тестировании строк без переменных существуют определенные преимущества быстродействия при использовании двойных кавычек.

15. Не ставьте phpinfo() в свой Webroot

Phpinfo – чудесная вещь. Просто создав PHP-файл, в котором есть:

6 фрагментов кода PHP для взаимодействия с Twitter

Указанная секция PHP может использоваться в любом месте файла, неограниченное количество раз, вперемежку с обычным текстом html. Чтобы PHP-код начал интерпретироваться, html-страничку (расширение .htm или html) нужно переименовать в .php.

1. Простой вывод текста


Текст можно вводить как в одинарных кавычках, так и в двойных. В функции аргументы можно передавать без скобок. Кроме echo можно использовать ключевое слово print. Отличие echo от print в том, что echo может выводить несколько строк, указанных через запятую:

Обе эти строки выведут один и тот же результат. Одинарные кавычки отличаются от двойных тем, что одинарные отключают сканирование строки на наличие в ней переменных, например, в следующем примере только первый оператор echo выведет значение переменной:

Одинарные кавычки также отключают действие Esc-кодов (см. ниже). Одинарные кавычки увеличивают производительность кода, поэтому их использование предпочтительнее.

Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа , а используется в другой секции . Переменные бывают трех типов — числовой, строковый и логический. Тип определяется неявно в момент присвоения переменной значения. Переменная появляется в момент её назначения. Для проверки факта существования переменной имеется функция IsSet, например (выполните этот код 2 раза, во второй раз раскомментируйте присвоение переменной $index):

Если переменная не была задана (присвоена), но её значение используется, то переменная автоматически получает значение по умолчанию. Например, если функция, применяемая над переменной, математическая, то переменной присвоится число 0. Переменные, объявленные вне функций, являются глобальными, т. е. видны во всем файле. Переменные, объявленные в теле функции, видны только в этой функции. Операторы PHP, в отличие от функций, констант и переменных, нечувствительны к регистру.

3. Неявное преобразование типа переменной (в данном примере преобразование строки в число):

Будет выведен результат 20. Это означает, что интерпретатор преобразовал строку ’10’ в число. При выводе произошло также преобразование — число 20 было преобразовано в строку ’20’. Автоматические преобразования типов упрощают код, но затрудняют поиск логических ошибок при отладке.

4. Определение констант, использование комментариев.

В этом примере задана константа и показано использование комментариев. Имя константы тоже чувствительно к регистру. Существующие предопределенные логические константы TRUE и FALSE нечувствительны к регистру. Константы удобно использовать в отдельном файле и подключать его оператором require_once, например, в таком файле могут храниться строковые константы пунктов меню. При случае легко поменять язык сайта, просто включив другой файл с константами.

5. Другие способы задания комментариев:

6. Использование перевода строки и параграфа при выводе

Тут показано использование перевода строки при выводе. Если использовать , то это будет означать конец параграфа, и интервал до новой строки будет увеличен по сравнению с .

7. Использование Ecs-кодов

\r
\n — команда, полностью эквивалентная тегу
в HTML — перенос строки (\n почему-то не всегда работает).
\$ — выведет символ доллара.
\\ — выведет обратную косую черту.
\» — выведет кавычки.

8. Пример функции

Имена функций чувствительны к регистру. Возврат значения переменной из функции возможно с помощью ключевого слова return $имя_переменной. Вместо тега можно использовать тег , но лучше этого не делать.

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

9. Пример условного оператора, получение переменной окружения.

Здесь показан пример условного оператора — проверка на адрес клиента, который зашел на сайт. Если его адрес не равен 192.168.0.14, то будет выведен файл ‘postinfo.html’ (тут еще и продемонстрировано действие оператора include). Бывают следующие операторы сравнения:

оператор описание
== равно
=== равно и совпадают типы
!= не равно
меньше больше
= больше либо равно

Кроме того, есть очень удобный оператор elseif:

Тут также продемонстрировано действие оператора include. Бывают еще функции включения include_once, require, require_once. Функции включения с окончанием _once гарантируют, что включение файла будет произведено только один раз, что спасает от логических ошибок в программе — если будет произведена попытка повторного включения, то сгенерируется фатальная ошибка. Функции include и include_once отличаются от require и require_once тем, что первая пара генерирует только предупреждение об ошибке о продолжает выполнение сценария. Вторая пара генерирует фатальную ошибку (дальнейшее выполнение сценария прекращается). Таким образом, include лучше использовать для включения файлов с содержимым (документов), а require для файлов программы PHP.

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

10. Получение других переменных окружения

Здесь показан вывод переменных окружения сервера. В одной строке можно использовать несколько операторов, отделенных табуляцией, пробелами и точкой с запятой. Более правильно, конечно, было бы использовать цикл foreach, поскольку перечень переменных для каждого сервера может отличаться (см. пункт 18 Массивы).

11. Логгер пользователей, которые заходят на сайт

Файл лога будет называться YYMMDD.txt и писаться в папку logs, которая находится в корневом каталоге сайта (там же, где файл index.html).

— строки складываются друг с другом не оператором ‘+’, а оператором ‘.’ (кто бы мог подумать).
— функция date позволяет получать текущее время в отформатированном виде.
— переменные можно складывать еще и просто перечисляя их в одной строке (. )
— \r\n используем для добавления перевода строки.
— $file = fopen(путь_до_файла,»a») используем для открытия файла и получения его дескриптора ($file). «a» означает, что файл будет использоваться для добавления данных.
— fwrite пишем в файл, fclose его закрываем.

Возможны другие варианты открытия файла:

‘r’ — Открыть только для чтения, помещает указатель на начало файла.
‘r+’ — Открыть для чтения и для записи, помещает указатель на начало файла.
‘w’ — Открыть только для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не существует, создается новый файл
‘w+’ — Открыть для чтения и для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не существует, создается новый файл.
‘a’ — Открыть только для записи, помещает указатель на конец файла. Если файл не существует, создается новый файл.
‘a+’ — Открыть для чтения и для записи, помещает указатель на конец файла. Если файл не существует, создается новый файл.

Цукерберг рекомендует:  Intellij idea - Сохранение в Intellij Idea

Может также использоваться символ ‘b’ в системах, различающих бинарные и текстовые файлы (не используется в Unix). Если данное значение не имеет смысла, оно игнорируется.

12. Как запустить PHP-скрипт? Опишу один из способов.

— в тело html-странички (например, page.html), в любом месте раздела нужно встроить код PHP:

— файл странички переименовываем из page.html в page.php. В NetObjects Fusion 7.5, в частности, это делается через свойства страницы (Go\Structure View, щелкаем на желто-черную иконку странички, в окошке Properties выбираем закладку Page, жмем кнопку Custom Names. в выпадающем списке File extension: меняем расширение файла на .php, просто вбивая вручную, жмем Ok).
— убеждаемся, что права на файл page.php равны 755 (права можно просмотреть и изменить либо в командной строке unix, либо в ftp-клиенте с соответствующими возможностями. Я использовал с успехом ftp-клиент, встроенный в Total Commander).
— теперь в браузере нужно загружать не page.html, а page.php. При этом html-код выполнится без изменений и отобразится в браузере, но дополнительно веб-сервер выполнит и PHP-код, заключенный между тегами и ? > . Отобразится как HTML-код, так и то, что будет выведено командой echo в коде PHP. Этот код может многое — модифицировать выводимую страницу, обращаться к базам данных, писать и читать файлы на web-сервере и многое другое. Если просмотреть исходный код страницы page.php в браузере (правая кнопка — View Source), то код PHP виден не будет (т. е. сервер отдает пользователю уже откомпилированную страничку).

13. Как узнать версию PHP, которая установлена на сайте? Функция phpinfo() выводит красивую и подробную информацию об установленном PHP.

14. Функция Error_Reporting() меняет параметры вывода сообщений об ошибке.

Если перед функцией поставить символ @, например @print(), то в случае ошибки в этой функции сообщение об ошибке не выведется.

15. Блок кода задается так же, как в C, с помощью <>.

16. Цикл for задается так же, как в C:

Отличие в том, что инициализировать можно несколько переменных:

Кроме того, можно делать несколько проверок, но это не имеет смысла, поскольку срабатывает только последняя:

Например, так получим бесконечный цикл:

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

Кроме того, можно делать несколько изменений переменных, опять же через запятую.

17. exit() прекращает работу сценария — дальнейший HTML-код не загрузится и не отобразится. Оператор die(«сообщение») делает то же самое, но выводит сообщение.

18. Функция для поиска и замены с помощью регулярного выражения

pattern регулярное выражение для поиска, чего будем менять
replacement чем заменяем
subject строка, в которой производится поиск и замена
limit сколько раз производим замену (необязательный параметр)
mixed псевдотип; говорит о том, что параметр может принимать множество (но не обязательно все) типов.

19. Массивы


Присвоение элементам значений:

В этом случае последний элемент массива получит индекс 21.
Можно в качестве индексов использовать символы:

Можно создавать массивы с помощью функции array:

С помощью функции array можно создавать массивы с символьными индексами:

Цикл foreach позволяет вывести все элементы массива:

А так с помощью foreach можно получать значение индекса:

Функция count позволяет получить количество элементов массива:

Пример, который выводит все переменные окружения сервера:

Этот код не такой громоздкий, как был приведен ранее (п. 10), и выводит весь список существующих переменных. Коды & nbsp ; выводят пробелы, которые не обрезаются до одного.

Другие предопределенные массивы:

$GLOBALS Все глобальные переменные скрипта (включает все остальные).
$_SERVER Переменные, установленные web-сервером либо напрямую связанные с окружением выполнения текущего скрипта. Аналог старого массива $HTTP_SERVER_VARS (который по-прежнему доступен, но не рекомендуется).
$_GET Переменные, передаваемые скрипту через HTTP GET. Аналог старого массива $HTTP_GET_VARS (который по-прежнему доступен, но не рекомендуется).
$_POST Переменные, передаваемые скрипту через HTTP POST. Аналог старого массива $HTTP_POST_VARS (который по-прежнему доступен, но не рекомендуется).
$_COOKIE Переменные, передаваемые скрипту через HTTP cookies. Аналог старого массива $HTTP_COOKIE_VARS (который по-прежнему доступен, но не рекомендуется).
$_FILES Переменные, передаваемые скрипту через HTTP post-загрузку файлов. Аналог старого массива $HTTP_POST_FILES (который по-прежнему доступен, но не рекомендуется). Для дополнительной информации смотрите «Загрузка методом POST».
$_ENV Переменные, передаваемые скрипту через окружение. Аналог старого массива $HTTP_ENV_VARS (который по-прежнему доступен, но не рекомендуется).
$_REQUEST Переменные, передаваемые скрипту через механизмы ввода GET, POST и COOKIE, и которым, следовательно, нельзя доверять. Наличие и порядок включения переменных в этот массив определяется в соответствии с директивой конфигурации PHP variables_order. Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0. Смотрите также import_request_variables().
$_SESSION Переменные, зарегистрированные на данный момент в сессии скрипта. Аналог старого массива $HTTP_SESSION_VARS (который по-прежнему доступен, но не рекомендуется). Дополнительную информацию смотрите в разделе Функции обработки сессии.

20. Строки

Функции для работы со строками и символами:

mixed str_replace (mixed search, mixed replace, mixed subject[, int &count]) возвращает строку, в subject, в которой все search заменены на replace. В переменной count подсчитывается количество замен.

int ord (string string) возвращает ASCII-код первого символа в строке.

string chr (int ascii) возвращает строку из одного символа, код которого задан аргументом ascii.

21. Удобные функции для работы с массивами

array split (string pattern, string string [, int limit]) позволяет получить массив из строки string, помещая её по частям, границы которых выделяются разделителем pattern. При этом pattern может состоять как из одного символа, так и из нескольких, а также из регулярного выражения (подробнее см. help). В результирующие элементы получаемого массива pattern не попадает. Функцию удобно использовать для разделения текста на отдельные строки, для разбиения html-кода на блоки с помощью тегов, для обработки CSV-таблиц и т. д. Если указан необязательный элемент limit, то массив будет состоять из не более чем limit элементов. В случае ошибки функция возвращает FALSE. Пример (открывается простой текстовый файл, каждая строка которого состоит из ссылки, и этими ссылками по разделителю \r\n заполняется массив $good_links):

bool in_array (mixed needle, array haystack [, bool strict]) ищет в массиве haystack значение needle и возвращает TRUE в случае удачи, FALSE в противном случае. Чрезвычайно удобная функция, одной строкой заменяющая цикл поиска по элементам массива. Если третий параметр strict установлен в TRUE, тогда функция in_array() также проверит соответствие types параметра needle и соответствующего значения массива haystack. Если needle — строка, сравнение будет регистрозависимым. Пример:

PHP → Twitter отправка сообщений и работа с Twitter API

Стала задача написать приложение на стороне сервера (PHP), которое должно периодически отправлять сообщение в twitter ленту (скажем при появлении новости на сайте), а также отсылать Direct Message некоему пользователю при наступлении определенных событий.

Грубо говоря необходимо реализовать взаимодействие PHP с Twitter API .

С недавних пор сервис twitter использует для авторизации вместо Basic Authentication более безопасный метод Open Authorization (OAuth).

Этот метод позволяет аутентифицировать пользователя не передавая непосредственно имя пользователя и пароль, а используя так называемые «токены» (tokens), что в свою очередь позволяет снять с разработчиков ответственность за хранение паролей пользователей.

Первое, что необходимо сделать – это зарегистрировать будущее приложение (если можно так выразиться) на странице Twitter для разработчиков – http://dev.twitter.com/apps/new

В предложенных полях необходимо заполнить информацию о приложении, включая описание, название, обратные ссылки и т.д.

Важными являются два пункта:

Application Type (тип приложения). Нас интересует клиенский тип приложений (Client, пользователю будет выдан уникальный PIN-код, который необходимо будет ввести). Тип приложения Browser – соответствует веб-скриптам. Разница в том, что после авторизации приложения типа Browser идет автоматический редирект на URL скрипта.

Default Access Type (тип доступа по умолчанию). Рекомендую выставить в Read & Write, чтобы позволить не только читать пользовательские данные, но и изменять их (отправлять сообщения к примеру).

Остальные параметры не критичны и заполнить их можете на свое усмотрение. Далее вводим проверочный код и попадаем на страницу настроек приложения, где получаем первые два ключа CONSUMER_KEY и CONSUMER_SECRET .

Далее необходимо скачать TwitterOAuth PHP библиотеку (автор Abraham Williams, на момент написания статьи последняя версия 0.2.0-beta3).

Затем необходимо внести некоторые изменения в код библиотеки, описанные в материале Twitter API: PIN-based OAuth Using PHP (автор Konstantin Kovshenin). Изменения направлены на то чтоб переделать веб-ориентированную аутентификацию (когда пользователь должен кликнуть на кнопку авторизации) на аутентификацию с PIN-кодом, предназначенную для пользовательских приложений.

Далее следуют ряд действий по регистрации необходимые для получения request_token, request_token_secret а затем и access_token, access_token_secret ключей.

Что, как и в какой последовательности делать очень хорошо расписано в данной статье: OAuth for PHP Twitter Apps, Part 1 (автор Raj Deut).

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

В заключение, вот как будет выглядеть скрипт отправки личного сообщения в twitter, а также отправки текста «hello world» в статус:

Блог Vaden Pro

Достаточно часто у нас возникает необходимость включить PHP код внутрь HTML страницы. Сделать это достаточно просто, когда понимаешь основные принципы работы парсера кода и знаешь основные методы его вставки с различиями между ними. Об этом и пойдет речь далее.

Принцип обработки файла содержащего PHP

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

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

Для лучшего понимания можете запустить у себя файл php следующего содержания:

Способы вставки PHP кода

Этот способ вставки выигрывает у своих альтернатив по ряду причин:

  • Не требует дополнительной активации или чего-либо в этом роде (доступен всегда)
  • Может быть без опасений использован в файлах со стандартами кода XML и XHTML
  • В силу своей распространенности стал практически общепринятым стандартом вставки PHP скриптов

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

Не смотря на всю свою простоту и привлекательность есть ряд причин по которым эта конструкция для вставки PHP не получила всеобщего признания, как первая:

  • Чтобы его возможно было использовать, нужно зайти в файл php.ini , найти в нем строку содержащую short_open_tag и активировать данный вид вставки скриптов в HTML код (в случае скомпилированного кода используется опция —enable-short-tags)
  • Иногда могут появляться проблемы с их поддержкой на не родном сервере, потому если Вы не имеете доступа к платформе, где будут после располагаться вписанные подобным образом скрипты, то лучше не применять эту конструкцию.
  • С версии PHP 5.4 конструкция будет верно истолкована парсером даже, если short_open_tag не будет активен, тем не менее ее применение на практике по-прежнему испытывает проблемы с совместимостью

Удобный на первый взгляд вариант также имеющий ряд проблем с применением на практике:

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих