タグ

関連タグで絞り込む (241)

タグの絞り込みを解除

PHPに関するazuki_mihomihoのブックマーク (280)

  • DateTime クラスのまとめメモ - Qiita

    はじめに phpで日付関連のこと調べると、手続き型の方法が検索上位に来てあまり手続き型で書きたくないなーと思ったので、DateTimeクラスを使った日付関連のことを個人メモ的にまとめた。 サンプル 現在日時を作成 $date = new DateTime(); echo $date->format('Y-m-d H:i:s'); // 2014-08-06 21:15:49 // 文字列から $date = new DateTime('2014-08-01 23:01:05'); echo $date->format('Y-m-d H:i:s'); // 2014-08-01 23:01:05 // 数値から $date = new DateTime(); $date->setDate(2014,8,1); echo $date->format('Y-m-d H:i:s'); // 201

    DateTime クラスのまとめメモ - Qiita
  • PHP で Web サイトのスクリーンショットを取得する | iHat(JP)

    ここでは、 Snappy を使って Web サイトのスクリーンショットを取得する PHP スクリプトを作成する方法について説明します。 Snappy は、「Web サイトのスクリーンショットをコマンドラインから撮影する」で紹介した wkhtmltoimage を PHP から利用するためのライブラリです。詳しくは下記の Web サイトを参照してください。 KnpLabs/snappy · GitHub Snappy のダウンロードと設置 Snappy をダウンロードし、 /usr/local へ設置します。 [user@localhost ~]$ wget https://github.com/KnpLabs/snappy/archive/0.1.2.tar.gz -O snappy-0.1.2.tar.gz [user@localhost ~]$ cd /usr/local [user@

    PHP で Web サイトのスクリーンショットを取得する | iHat(JP)
  • PHPにおけるオブジェクトインジェクション脆弱性について — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    SQLインジェクションはかなり有名になりましたが、オブジェクトインジェクションはまだあまり聞かないので、まとめておきます。 Dependency Injection(DI)とは関係ありません。 オブジェクトインジェクション脆弱性とは? SQLインジェクションが外部からSQL文を注入する攻撃であるのと同じように、オブジェクトインジェクションとは外部からオブジェクトを注入する攻撃です。 外部からオブジェクトを注入できれば、そのオブジェクトの機能によりさまざまな攻撃ができる可能性があります。最悪の場合、任意のコードを実行できる脆弱性になります。 PHPの場合、この攻撃が可能なのは、unserialize()関数を悪用できる場合です。 攻撃の方法 unserialize()関数に外部から任意のデータを渡すコードがあった場合、攻撃者は自由にシリアライズされたデータを送信することで、生成されるオブジェ

  • ブックマーク必須、Ruby関連の厳選リンク集「Awesome Ruby」 | ソフトアンテナ

    今の時代、Googleで検索するだけでたくさんの情報をみつけることができますが、見つかった情報が当に価値がある情報なのかどうか、限られた時間で見極めるのはなかなか大変なことだと思います。 そのような時に利用したいのがキューレーションリスト。「Awesome Ruby」はRuby関連ライブラリやリソースへの厳選されたリンク集で、用途ごとに定番情報へのリンクが張られているので、ざっと概略を知りたいときに役に立ちそうです。 例えば、ファイルアップロードでは、環境構築ツールではrvmとrbenvが、ファイルアップロードではpaperclip、carrierwave、dragonflyなどのライブラリの名前が挙げられていて、このチョイスは誰もが納得するところではないでしょうか。 Ruby用だけではなく、GoPHPPython用のリンク集もあるようですのでこちらもどうぞ。 awsome-go /

    ブックマーク必須、Ruby関連の厳選リンク集「Awesome Ruby」 | ソフトアンテナ
  • PHP で配列を走査して処理するのは、for / foreach だけじゃない

    PHP で配列の要素にアクセスして、処理を行うには、for や foreach を使うのがおなじみです。 この方法でも良いのですが、PHPには、それ以外にも配列を走査する関数やライブラリがあります。ここでは、配列を走査して処理を行う方法を見てみましょう。 サンプル仕様 このエントリで以下の配列を処理対象とします。array.phpで保存されている想定です。 <?php return [ [ 'id' => 1, 'year' => 1993, 'name' => 'Harada', ], [ 'id' => 2, 'year' => 2001, 'name' => 'Kato', ], [ 'id' => 3, 'year' => 2009, 'name' => 'Aoyama', ] ]; この配列について処理を行います。 配列内に連想配列が格納されており、nameとyearというキーを

  • PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは

    こんにちは、@9ensanです。 PHPには、今まで様々なコーディング規約があり、例えば WordPress Pear Zend CakePHP Symfony CodeIgniter などなどです。 ここまで、それぞれでコーディング規約があり統一が取られておらずまた、その為に独自のコーディング規約を作る人もいました。 これに対して、「PHP-FIG」という有名なPHPプロジェクトが参加しているグループが、共通点をルール化して、新しいコーディング規約を作成しています。 それが「PSR-0、PSR-1、PSR-2、PSR-3」です。 これからのPHPのコーディング規約はPSRに従うのが一番だと思います。既に様々な有名フレームワークもPSRに従うように修正が加えられています。 PSRの日語化リンク PSR-0、1、2は日語化してくれている人がいるので読んでみるのが一番です。 PSR-0

    PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは
  • PECL::Imagickを試す - モノノフ日記

    GDで展開できない画像*1があったのでImageMagickを試そうと思って導入してみました。 インストール peclモジュールなのでコマンドライン1発で楽チン。 sudo pecl install imagick php.iniにライブラリを呼び出す記述を追加 extension=imagick.so 実際に使ってみる マニュアルはいろいろ探しましたが、PHPマニュアルが一番詳しいと思います。 PHP: Imagick 画像ライブラリ - Manual しかしPHPマニュアルもAPI一覧のみで詳しい解説は書かれていないので実際に使って試してみました。 サンプル画像はこれです。 リサイズしてみた APIリストを眺めてみるとリサイズに使いそうなメソッドである下記5つを試してみました。 Imagick::adaptiveResizeImage Imagick::cropImage Imagic

    PECL::Imagickを試す - モノノフ日記
  • Twilio をはじめるのに知っておくと良いこと6つ(Twilio API勉強会@大阪)

    Twilio 盛り上がってきていますね。電話という身近でありながらシステムとして扱うには複雑な仕組みが必要なものを単純な API で操作できるというのは面白いサービスです。 先日大阪で行われたTwilio API勉強会@大阪にて、PHP から Twilio を触ってみるハンズオンセッションを行ないました。Twilio を使うと簡単な PHP コードで、自分の携帯を鳴らしたり、携帯から電話をかけてみたり、簡単に試すことができるので、これはハンズオンとしてもなかなか楽しかったです。 お声がけいただき、ありがとうございましたm(_ _)m 発表資料はこちら。 ハンズオンの手順は、Gist に書いています。ここでは、Composer を使って、twilio-phpPHP版のTwilioライブラリ)をインストールしています。 https://gist.github.com/shin1x1/7006

    Twilio をはじめるのに知っておくと良いこと6つ(Twilio API勉強会@大阪)
  • 【PhpDoc】コメントの書き方のまとめ – 小俣泰明(タイメイ)ブログ@アルサーガパートナーズ

    関数/メソッドの場合 例文 /** * aaaの説明 * * @param string $arg 第一引数 * @param integer $arg2 第二引数 * @return array 戻り値の説明 */ function aaa($arg,$arg2){} 型 string integer object(オブジェクト) array mixed(いろんな型が返る場合), resource(リソース型) 変数/define定数 /** * 説明 * @see 関連関数 */ のように書きます。 クラスの場合 /** * クラスの説明 * * @package パッケージ名:ここは、自分でうまく分類作れれば見やすくなる * @author 作った人 * @since PHP 5.3 PHPのバージョンとかいれときます? * @version 1.0.1 */ DocBlockとは?

    【PhpDoc】コメントの書き方のまとめ – 小俣泰明(タイメイ)ブログ@アルサーガパートナーズ
  • PHPで失敗するかもしれない処理の返り値を配列で表現すると都合がいいという話 - id:anatooのブログ

    値を返すのに失敗するかもしれない処理を扱う場面というのは多い。 例えばあるファイルの中身を取得する処理について考えると、ファイルが存在する場合はその中身を取得して返すことができるが、そうでない場合は中身を取得するのに当然失敗する。 PHPに予め用意されているfile_get_contentsはまさにそれだが、この関数は処理に失敗するとfalseを返す。 ここでは別にもう一つ似た関数を作ってみる。 <?php function my_file_get_contents($path) { $buf = file_get_contents($path); return $buf === false ? array() : array($buf); } このmy_file_get_contents関数は、ファイルの中身を成功した場合は結果を持った配列を返し、そうでなければ空の配列を返す。 これから

    PHPで失敗するかもしれない処理の返り値を配列で表現すると都合がいいという話 - id:anatooのブログ
  • PHP 5.3の無名関数を試してみた - hnwの日記

    何番煎じかわからないですが、PHP 5.3からは無名関数が実装されたということで、試しに使ってみました。 見なくても何となく使えるようなものだと思いますが、ドキュメントが「PHP: 無名関数 - Manual」にありますので、ざっと目を通した方がいいと思います。 僕は「どうせ無名関数って中身はcreate_functionなんでしょ?」と思っていたんですが、Closureクラスを使って実装されているなんてことも書いてあります。PHPにしてはマトモっぽくて意外に感じました。 コールバック関数としての無名関数 PHPには引数としてコールバック関数を要求する関数がありますが、PHP5.3.0からは無名関数を引数にしても動くようになりました。 無名関数は、普段の関数と同じノリで「function」から書き始めればOKです。関数宣言との違いは関数名を書かない点だけで、引数やタイプヒンティングについて

    PHP 5.3の無名関数を試してみた - hnwの日記
  • PHPがいかに駄目な言語か、という話。 - Matzにっき(2008-01-26)

    << 2008/01/ 1 1. 年賀状 2. ゴビウス 3. [Ruby] ZSFA -- Rails Is A Ghetto 2 1. 新年会 3 4 1. The Mythical 5% 5 6 7 8 1. [言語] Substroke Design Dump 2. [言語] A programming language cannot be better without being unintuitive 3. [OSS] McAfee throws some FUD at the GPL - The INQUIRER 9 1. [言語] Well, I'm Back: String Theory 2. [言語] StringRepresentations - The Larceny Project - Trac 10 1. [Ruby] マルチVMでRubyを並列化、サンと東大

    PHPがいかに駄目な言語か、という話。 - Matzにっき(2008-01-26)
  • [PHP] 三項演算子?:において、2項目の値を省略する際の注意点 | Prog Blog From 憩い場所

    はじめに PHP5.3より三項演算子において2項目の省略が可能になりました。 PHP: 比較演算子 – Manualにおける三項演算子の項目を参照すると、以下のように書かれています。 PHP 5.3 以降では、三項演算子のまんなかの部分をなくすこともできるようになりました。 式 expr1 ?: expr3 の結果は、expr1 が TRUE と同等の場合は expr1、 それ以外の場合は expr3 となります。 サンプルコードで書くと、こういうことになります。 <?php $value = "hoge"; $a = $value? $value: "default"; // 旧来の書き方 $b = $value?: "default"; // PHP5.3より追加された書き方 ?> $valueがTRUEもしくはTRUEにキャストされる値なら$valueを、違うなら”default”

  • ディレクトリ内のファイル一覧を取得する - Affamative Way

    googleにて「php ディレクトリ ファイル一覧」と検索したところこのページが一件目にHIT readdir:ディレクトリ内のファイル一覧を取得する しかしながら間違ってるというオチ。。。 同じこと調べる人がコッチにくるといいなぁということでエントリ。 以下、間違ってるサンプルコード <?php //ディレクトリ・ハンドルをオープン $res_dir = opendir( '.' ); //ディレクトリ内のファイル名を1つずつを取得 while( $file_name = readdir( $res_dir ) ){ //取得したファイル名を表示 print "{$file_name}\n"; } //ディレクトリ・ハンドルをクローズ closedir( $res_dir ); ?> 正しくは以下のように取得してやる PHP: readdir - Manualより引用 警告 この関数は

    ディレクトリ内のファイル一覧を取得する - Affamative Way
  • PHPでCSVファイルを読み込む

    fgetcsv関数を使用してcsvファイルを読み込みます。以下のサンプルでは、CSVファイルの内容をテーブルタグで簡単に整形を行いブラウザに表示させます。 サンプルデータとして下記の内容が記録されたファイルを用意します。 data.csv [php] 佐藤,20,東京都 山,35,埼玉県 田中,40,大阪府 鈴木,23,兵庫県 伊東,19,奈良市 藤岡,16,愛知県 今村,55,神奈川県 北野,60,千葉県 [/php] getcsv.php [php] “; #fgetcsv関数がfalseを返却するまで実行 while($data = fgetcsv($fp)){ print “ “; #csvファイルの列数だけ実行 for($i=0;$i“; } print “ “; } print “ “; fclose($fp); ?> [/php] fgetcsv関数の動きとしては、1回実行

    PHPでCSVファイルを読み込む
  • CakePHP コントローラのメソッドをシェルで実行する方法

    <?php App::uses('AppController', 'Controller'); class BotController extends AppController { public function tweet() { return $this->Bot->tweet(); //つぶやいた内容をreturnするメソッドとする } } <?php App::uses('TwitterController', 'Controller'); class BotShell extends AppShell { public function startup() { parent::startup(); $this->TwitterController = new TwitterController(); } public function tweet() { $this->out(

  • PHPで画像を保存 | ROOM201

    PHPを使ってWEB上にある画像を自らのサーバー上に保存する。 スクレイピングAPIを使用するときよく使うと思うのでメモ。 file_get_contents <?php $url = 'http://k.yimg.jp/images/top/sp/logo.gif'; $data = file_get_contents($url); file_put_contents('images/logo.jpg',$data); これはfile_get_contentsを使ったもの。 画像もバイナリとして扱うことで保存ができる。 cURL <?php $url = 'http://k.yimg.jp/images/top/sp/logo.gif'; $yahoo = curl_init(); curl_setopt( $yahoo, CURLOPT_URL, $url ); curl_set

    PHPで画像を保存 | ROOM201
  • curl_multiでHTTP並行リクエストを行うサンプル

    curl_multiはselectシステムコールを使って同時に複数のHTTPリクエストを行うことができます。マルチスレッドやらマルチプロセスを使っているわけではなく、原理はnode.jsなんかと近いI/O多重化で、一度に一つのことしかしていません。 PHPcurlはlibcurlAPIをほぼ踏襲しており、ちょっと取っつきにくいです。クラスでラッピングして、curl_close()などはデストラクタで呼ばれるように自動化すると、もう少しすっきりすると思います。 <?php /** * curl_multiでHTTP複数リクエストを並列実行するテンプレ * */ //タイムアウト時間を決めておく $TIMEOUT = 10; //10秒 /* * 1) 準備 * - curl_multiハンドラを用意 * - 各リクエストに対応するcurlハンドラを用意 * リクエスト分だけ必要 * *

    curl_multiでHTTP並行リクエストを行うサンプル
  • phpでapiを使うなら必須なcurl_multi | エンジニア開発記

    curl_multiというのを見つけたので使ってみました. 外部APIを使う人にとっては必須かもしれません. curl_multiとは そのまんま,curlを複数並列に走らせるための関数です. 直列にすると待機時間が長いので,並列にリクエストを投げることで高速化が見込めます. php5から使えるようです. 基的な使い方 使い方としては次の通り. それぞれのリクエスト用のcurlを作成する curl_multiを一つ作り,そこにそれぞれのリクエスト用のcurlをセットする 実行!&リクエスト終了待ち それぞれのリクエスト用curlcurl_multiの両方をcloseする php関数リファレンスよりサンプルコード [php] <?php // cURL リソースを作成します $ch1 = curl_init(); $ch2 = curl_init(); // URL およびその他適切なオ

  • Composer のセキュリティ上の問題が直ったので PHP な方は今すぐ更新を - co3k.org

    Composer の以下の問題が 2 月半ばあたりから話題になっていました。 Limit Replace / Provides to packages required by name in root package or any dep · Issue #2690 · composer/composer https://github.com/composer/composer/issues/2690 一言で言うと、 条件によってはユーザの意図しないパッケージがインストールされてしまう という問題です。悪意のあるパッケージをインストールしたことに気づかれなければ、攻撃者の思い通りのコードを実行させることができてしまいます。 ざっくり説明すると、 Composer には fork したパッケージや、リネームしたパッケージ から 、元のパッケージを置き換えることのできる機能が存在する (エン