Создание урла с middleware в Laravel

Опубликовано 2016.10.05 в разделе Php.

Создаёте контроллер, например CronController (в консоли php artisan make:controller CronController):
  1. namespace App\Http\Controllers;
  2.  
  3. use Illuminate\Http\Request;
  4.  
  5. use App\Http\Requests;
  6. use Illuminate\Support\Facades\DB;
  7.  
  8. class CronController extends Controller
  9. {
  10.  
  11. public function myCallback() {
  12. echo __FUNCTION__;
  13. }
  14. }
Затем создаёте middleware, например с именем LocalhostOnly (в консоли php artisan make:middleware LocalhostOnly)
  1. namespace App\Http\Middleware;
  2.  
  3. use Closure;
  4.  
  5. class LocalhostOnly
  6. {
  7. /**

Разбить строку по последнему пробелу

Опубликовано 2016.03.09 в разделе Php.

Допустим у нас есть строка
  1. $content = 'В CMS Drupal есть много типов материалов, которые можно расширить полями различных типов.';
И стоит задача разбить строку на две подстроки по последнему пробелу. Сразу напрашивается следующий код, но он не работает:
  1. $content = preg_split("/[\s]{1}/", $content);
По идее он должен разбить строку по первому пробелу, но разбивает он её по всем пробелам. Придётся пойти более сложным путём, а именно:
  1. //развернем строку задом наперед(реверс)

Как на PHP узнать IP адрес посетителя

Опубликовано 2015.01.14 в разделе Php.

IP адрес посетителя, как и другая полезная информация, хранится в суперглобальной переменной $_SERVER. Суперглобальной она называется из-за того, что она доступна всегда и везде. Её не нужно определять или как-то подключать. Она видна даже если запускать скрипт из командной строки. $_SERVER не что иное как ассоциативный массив данный. Чтобы посмотреть из чего он состоит - его можно вывести полностью:
  1. echo '<pre>';
  2. print_r($_SERVER);
  3. echo '</pre>';
На и непосредственно IP адрес хранится в элементе с индексом REMOTE_ADDR.

Отправка E-mail с вложением

Опубликовано 2013.07.25 в разделе Php.

Для того, чтобы отправить письмо с вложением - создайте функцию со следующим содержанием:
  1. function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
  2. $file = $path.$filename;
  3. $file_size = filesize($file);
  4. $handle = fopen($file, "r");
  5. $content = fread($handle, $file_size);
  6. fclose($handle);
  7. $content = chunk_split(base64_encode($content));
  8. $uid = md5(uniqid(time()));
  9. $name = basename($file);
  10. $header = "From: ".$from_name." <".$from_mail.">\r\n";
  11. $header .= "Reply-To: ".$replyto."\r\n";</".$from_mail.">

Основы Symfony 2

Опубликовано 2013.07.23 в разделе Php.

Выдержки и памятки из различных статей. Мои собственные заметки.
  • app/: Конфигурация приложения
  • src/: PHP код проекта
  • vendor/: Сторонние зависимости
  • web/: Корневая директория web-сервера

Создание бандла

Я работаю в режиме девелопера, так что корректируйте пути к файлам конфига. Пусть это будет бандл для работы с блогами.
  • В файл app/config/AppKernel.php добавил свой бандл
    1. $bundles[] = new Blog\BlogBundle\BlogBundle();
    куда добавлять - сразу поймёте, там всё просто.

Array PHP MySQL

Опубликовано 2013.06.20 в разделе Php.

Для хранения данных удобно использовать массивы. В этой статье мы рассмотрим цикл Массив <-> База Данных <-> Массив Примеры будут приведены с использованием библиотеки PDO и устаревшего, но простого mysql_query. Начнём с массива. Предположим что у нас есть массив товаров примерно следующего содержания:
  1. $products = array(
  2. 'title' => 'Яблоки',
  3. 'price' => 17,
  4. 'catalog' => 1,
  5. 'count' => 114,
  6. ),
  7. 'title' => 'Груши',
  8. 'price' => 25,
  9. 'catalog' => 1,
  10. 'count' => 85,
  11. ),
  12. 'title' => 'Молоко',

Первая буква в верхний регистр

Опубликовано 2013.02.12 в разделе Php.

В css есть замечательное свойство - text-transform, которое может иметь ряд значений, а именно: capitalize, lowercase, uppercase, none и inherit. Этими свойствами можно сделать заглавными первые буквы каждого слова, перевести в верхний регистр все символы, перевести в нижний, ничего не делать и взять значение от родителя. Но ни одно значение этого свойства не может сделать заглавной только одну первую букву строки. Разве что capitalize, которое сделает заглавной каждую букву каждого слова, что не всегда удобно. Обойти это можно средствами PHP при помощи такой вот функции:

Измерение скорости выполнения скрипта

Опубликовано 2013.01.25 в разделе Php.

Иногда скрипты отрабатываются по несколько секунд. Это допустимо, но не всегда приемлемо. Можно использовать дебагеры и отладчики для поиска узких мест. Но установить и настроить их сможет не каждый. Самым быстрым вариантом будет измерение скорости работы скрипта следующим образом. Вначале скрипта поместите такой код:
  1. $script_start = microtime(TRUE);
А в конце такой:
  1. $script_end = microtime(TRUE);
  2. $script_time = $script_end - $script_start;
Теперь в переменной
  1. $script_time
хранится время работы скрипта в секундах.

Объекты php

Опубликовано 2012.07.24 в разделе Php.

Что такое объекты и где их использовать? Слово это сложное,на первый взгляд...кажется что это дебри неизведанного и сложного ООП,что-то сродни инкапсуляции или полиморфизму. На самом деле-это не так. Конечно использование их в объектно-ориентированном подходе никто не отменял, но можно обойтись и без него. Объекты-это по сути теже массивы. Но они могут быть только ассоциативными,если говорить о них как о массивах. Также синтаксис работы с объектами немного отличается от тех же массивов. Рассмотрим на простом примере. Создадим объект и наполним его свойствами.

Cron средствами JavaScript

Опубликовано 2012.03.16 в разделе Php.

Если требуется преодически запускать какой либо php скрипт для пользователя, то можно запускать его фоном,средствами AJAX. Для этого нужно иметь сам файл,библиотеку jQuery и написать коротенький скрипт. Вот сам скрипт:
  1. function cron(){
  2. //дергаем крон
  3. $.ajax({
  4. url: "cron_file.php",
  5. async: true
  6. }).responseText;
  7.  
  8. setTimeout(function(){
  9. cron();
  10. }, 60000);
  11. }
  12. cron();
Помещайте этот код на страницу,или в js файл. И когда пользователь будет на сайте-то файл cron_file.php будет запускаться для него каждые 60 секунд.