Intereting Posts
Как правильно исправить ошибку времени выполнения phpMailer max? PHP – отображение ошибки 404 без перенаправления на другую страницу Мне нужно объявление DOCTYPE в php-файле с html? Изменение класса выполнения PHP Как зарегистрировать php dll с окнами, если это 64-битные окна, но 32-битные php и apache? добавление верхнего и нижнего колонтитула к контроллеру как создать вложенный массив и сохранить его в базе данных? Xamarin / PHP, я хочу сделать мой Jarray в JObject, либо в C # (Xamarin), либо в моем PHP-коде Не помещается на место, пакет, загруженный классом, требуется от композитора, делает php throw Класс не найден Фильтровать и сортировать многомерный массив с несколькими значениями Низкая производительность Извлечение XML-данных в MySQL WordPress, как установить длину выдержки сообщения до 100 символов и 200 символов Ячейки в сетке, пересекаемые линией (PHP) Есть ли ярлык для вставки объекта объекта PHP при завершении кода в PhpStorm?

Каков наилучший способ использования API Twitter через PHP?

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

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

На данный момент веб-сайт клиента является чисто HTML, поэтому базы данных нет. Поэтому для моего решения требуется только PHP и локальная файловая система (например, сохранение локального файла XML с некоторыми данными в нем).

Итак, учитывая этот ограниченный критерий, для меня лучший способ получить доступ к API Twitter – через PHP – без ограничения моего лимита вызовов API в течение нескольких минут?

Это будет довольно просто, как только вы сможете вывести график времени и отобразить его, а затем добавить к нему некоторое кэширование на основе файлов.

check age of cache Is it more than 5 mins old? fetch the latest information regenerate the HTML for output save the finished HTML to disk display the cached pre-prepared HTML 

PEAR Cache_Lite сделает все, что вам нужно, на уровне кеширования.

  1. задание cron (не likley – если нет даже базы данных, тогда нет заданий cron)
  2. напишите microtime() в файл. на странице просмотра сравнить текущую временную метку с сохраненной. его разница больше, чем N минут, потяните новый твийт-файл и напишите текущую временную метку в файл
  3. если передняя страница представляет собой статический html-файл, который не вызывает какой-либо php, включите изображение <img src="scheduler.php"/> которое возвращает прозрачный gif 1px (по крайней мере, вы сделали это таким образом, когда я был молод) и делает ваш твиттер-вытягивание молча

или вы имеете в виду локально-локальную файловую систему, как в «my / the customers computer not the server» -local?

в этом случае:

  1. получить некоторый сервер с заданием cron или планировщиком и PHP
  2. написать сценарий, который читает и сохраняет фид в файл
  3. напишите файл на сервер клиентов с помощью FTP
  4. отобразить фид с помощью javascript (да, ajax также работает со статическими файлами в качестве источников данных). jquery или какой-нибудь lib отлично подходит для этого
  5. или: создайте локальный файл html для отображения твитов и загрузите его (но будьте осторожны … потому что вы можете перезаписать обновления на сервере)

imo: для небольших сайтов вам часто просто не нужна полностью выращенная база данных sql. файловые системы великолепны. комбинация scandir , preg_match и тщательно выбранных имен файлов часто достаточно хороша.
и вы можете на самом деле сделать много обработки переднего плана (например, отображение XML) с помощью красивого javascript.

Поскольку мы не знаем вашу конфигурацию сервера, я предлагаю вам настроить задание cron (предполагая, что вы на Linux-сервере). Если у вас есть что-то вроде cPanel в среде общего хостинга, это не должно быть проблемой. Вам нужно написать скрипт, который вызывается cron, и он получит последние твиты и напишет их в файл (xml?). Вы можете планировать cron для запуска каждые 30 минут. или что вы хотите.

Вы можете использовать TweetPHP Тимом Дэвисом. http://lab.lostpixel.net/classes/twitter/ – Этот класс имеет множество функций, в том числе тот, который вы хотите, показывая линию времени ваших клиентов. На странице показаны хорошие примеры того, как ее использовать.

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

Надеюсь это поможет

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

A) Существует ли файл?

Да: прочитайте его в переменной No: перейдите к шагу D)

B) Unserialize переменная (пара PHP serialize () / unserialize () будет просто прекрасна)

C) Сравните возраст кэша, хранящегося с текущим временем (это сделает временная метка Unix). Его более 5 минут друг от друга:

D) Получайте новые твиты из Twitter, обновляйте объект, сериализуйте его и снова записывайте в кеш. Сохраните новейшие твиты для печати. Его нет: просто прочитайте твиты из кеша.

E) Печать твитов

Простейшим и простым способом сериализации объекта является сериализация () / unserialize (). Если вы не хотите откладывать усилия на создание объекта, вы можете просто использовать 2D-массив, serialize () будет работать нормально. Посмотрите на http://php.net/serialize

Учитывая, что у вас нет доступа cPanel, это лучшее решение, так как у вас не будет доступа к пакетам PEAR, cron или любым другим более простым решениям.

 array( 'lastrequest' => 123, 'tweets' => array () ) 

теперь в вашем коде поставьте чек, чтобы увидеть, является ли метка времени в хранилище данных для lastrequest больше, чем X секунд. Если это то время, когда вы обновляете свои данные.

сериализовать и хранить массив в файле, довольно просто