Skip to content

Instantly share code, notes, and snippets.

View sword-jin's full-sized avatar

Sword sword-jin

View GitHub Profile
@sword-jin
sword-jin / time.php
Created August 31, 2015 13:02
Carbon 的简单使用
echo Carbon::now()->addDays(4); //2015-09-04 20:39:45
echo Carbon::now()->addWeeks(4); //2015-09-28 20:39:56
echo Carbon::now()->subWeeks(4); //2015-09-28 20:39:56
echo Carbon::now()->tomorrow(); //2015-09-01 00:00:00
echo Carbon::now()->yesterday(); //2015-08-30 00:00:00
$time = Carbon::now()->subYears(1)->timestamp;
echo $time; //1409488994
$date = Carbon::createFromTimestamp($time);
@sword-jin
sword-jin / error.default.php
Last active September 5, 2015 05:20
修改 default page 在handle.php 中重写 convertExceptionToResponse 方法
<?php namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Symfony\Component\Debug\ExceptionHandler as SymfonyDisplayer;
class Handler extend ExceptionHandler
{
/**
* Convert the given exception into a Response instance.
@sword-jin
sword-jin / example1.php
Last active September 5, 2015 05:52
call_user_func_array() 笔记
<?php
function foobar($arg1, $arg2)
{
echo __FUNCTION__ . " got $arg1 and $arg2\n";
}
class foo
{
function bar($arg1, $arg2)
@sword-jin
sword-jin / DirectoryIterator.md
Last active September 7, 2015 11:03
SPL File and directory

DirectoryIterator

  • include dot files
  • numbered keys
  • Path not included in value
  • no configuration options
  • array requires cloned objects

FilesystemIterator

@sword-jin
sword-jin / callback_filter.php
Last active September 7, 2015 13:41
SPL filtering values
<?php
$courses = simplexml_load_file('common/data/courses.xml', 'SimpleXMLIterator');
$courses = new CallbackFilterIterator($courses, 'getCoursesByLevel');
foreach ($courses as $course) {
echo "$course->title with $course->author (level: $course->level)<br />";
}
@sword-jin
sword-jin / filter_json.php
Last active September 7, 2015 14:26
Array Iterator
<?php
class AuthorFilter extends FilterIterator
{
/**
* @var Iterator
*/
private $author;
public function __construct(Iterator $iterator, $author)
@sword-jin
sword-jin / RecursiveTreeIterator.php
Created September 7, 2015 15:10
RecursiveTreeIterator 生成树状文件结构
<?php
$files = new RecursiveDirectoryIterator('common');
$files->setFlags(RecursiveDirectoryIterator::SKIP_DOTS | RecursiveDirectoryIterator::UNIX_PATHS);
$files = new RecursiveTreeIterator($files);
$files->setPrefixPart(RecursiveTreeIterator::PREFIX_LEFT, '&divideontimes;');
$files->setPrefixPart(RecursiveTreeIterator::PREFIX_END_HAS_NEXT, '&Vdash;');
$files->setPrefixPart(RecursiveTreeIterator::PREFIX_END_HAS_NEXT, '&wr;');
$files->setPrefixPart(RecursiveTreeIterator::PREFIX_END_LAST, '&acd;');
@sword-jin
sword-jin / SplDoublyLinkedList.md
Last active September 7, 2015 16:53
SPL 数据结构

通过代码学习和理解双向链表

  • rewind 使链表当前节点指向链表的底部
  • push 向顶部插入元素
  • pop 获取顶部节点,并且删除这个节点,当前指针的位置不改变
  • current 指向链表当前节点的指针,必须在调用之前调用 current,指向的节点被删除之后会指向一个空节点。
  • next 指针指向下一个节点
  • unshife 获取底部节点,并且删除这个节点,当前指针的位置不改变
  • bottom 获取底部元素
  • top 获取顶部元素
@sword-jin
sword-jin / authentication.sql
Created September 10, 2015 15:30
创建数据库,指定用户权限
CREATE DATABASE IF NOT EXISTS table_name COLLATE utf8_general_ci;
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON table_name.* TO 'username'@'host';
@sword-jin
sword-jin / README.php
Last active September 13, 2015 09:50
php cookbook String.
//截取字符串
$substring = substr($string,$start,$length);
//使用给定字符串替换
$new_string = substr_replace($old_string,$new_substring,$start);
//反转字符串
string strrev (string $string)
//反转字符串(单词)