タグ

PHPに関するshunpyのブックマーク (54)

  • PHPでユニコードエスケープ(unicode_encode, unicode_decode代替) - はて日記

    PHP6からは unicode_encode() 関数と unicode_decode() 関数が追加されるらしいのですが、PHP5やPHP4でユニコードエスケープをしたい時のために。 // UTF-8文字列をUnicodeエスケープする。ただし英数字と記号はエスケープしない。 function unicode_decode($str) { return preg_replace_callback("/((?:[^\x09\x0A\x0D\x20-\x7E]{3})+)/", "decode_callback", $str); } function decode_callback($matches) { $char = mb_convert_encoding($matches[1], "UTF-16", "UTF-8"); $escaped = ""; for ($i = 0, $l =

    PHPでユニコードエスケープ(unicode_encode, unicode_decode代替) - はて日記
    shunpy
    shunpy 2018/06/18
  • PSR-2: Coding Style Guide - PHP-FIG

    Coding Style Guide¶ Deprecated - As of 2019-08-10 PSR-2 has been marked as deprecated. PSR-12 is now recommended as an alternative. This guide extends and expands on PSR-1, the basic coding standard. The intent of this guide is to reduce cognitive friction when scanning code from different authors. It does so by enumerating a shared set of rules and expectations about how to format PHP code. The s

    PSR-2: Coding Style Guide - PHP-FIG
    shunpy
    shunpy 2018/03/12
  • PHPのジェネレータ――foreachループで使える値生成のための関数

    オープンソースのWeb開発向けスクリプト言語「PHP」の文法を一から学ぶための入門連載「Web業界で働くためのPHP入門」。今回は、「ジェネレータ」について解説します。 PHP 5.5から導入された「ジェネレータ」とは ジェネレータは、PHP 5.5から導入されたものです。ソースコードとしては関数とよく似ていますが、働きが全く違います。関数と比べて何が違うのか、ジェネレータとは何か、から話を始めていきましょう。 関数内でreturn以降の行は処理されない まず、関数のソースコードから確認していきましょう。下記のuseFunction.phpを作成し、実行してください。なお、ここで定義したreturnValues()関数は、通常ではあり得ない記述方法をしています。これは、後に記載するジェネレータとの違いをはっきりさせるためです。 <?php function returnValues():

    PHPのジェネレータ――foreachループで使える値生成のための関数
    shunpy
    shunpy 2017/10/31
  • デバッグ用にechoやprint_rを書く代わりにテストを書こう - Qiita

    こんにちはみなさん 偉い人は言いました Whenever you are tempted to type something into a print statement or a debugger expression, write it as a test instead. 何かを print 文やデバッガの式に書きたくなったときは、 代わりにその内容をテストに書くようにするんだ。 -- Martin Fowler さて、これはPHPUnitのマニュアルサイトに、突如として書かれている文言です。 Martinさんといえば、アジャイルソフトウェア宣言をした偉人の一人です。 テストコードを書くとなると、なかなか敷居高いもので、特に既存システムがゴミだったりすると、導入など夢のまた夢ということもママあります。 一方で、echoとかvar_dumpとか使って、こっそり内部動作を覗いて、コードが

    デバッグ用にechoやprint_rを書く代わりにテストを書こう - Qiita
    shunpy
    shunpy 2016/11/10
  • php プログラマのための Python チュートリアル — phpy 0.1 documentation

    php プログラマのための Python チュートリアル¶ このドキュメントは、すでに php でのプログラミング経験がある人に、 Python を知ってもらうためのものです。 Python の標準ドキュメントには、すでに他の言語でプログラミングを経験したことの ある人にとっては十分なチュートリアルがあります。 (日語チュートリアル) なので、このドキュメントでは Python の言語機能を網羅するような解説はしません。 php プログラマが注意すべき部分やイディオムを紹介することで、チュートリアルを 補強するものです。

  • 初心者を戒めるPHP - Qiita

    この記事は何か 挑発的な文言になってる箇所はあるものの、内容としてはそれなりにまじめに書いたつもり。むしゃむしゃしてやった。いまでは反芻してゐる。 PHPDocは必ず書け あらゆる再利用可能な手続きは、他人が容易に応用できるように型が明示的でなければいけない。メンバー全員が実装コード全てを把握できるものならそれが理想だけれど、残念ながら時間は有限だ。ヘッダだけを読んでメソッドの仕様が理解でき、またはコードを読む助けになるようなコメントが良い。 有名な事実を紹介すると、多くのコードは数か月(早ければ数日!)も経てば、他人が書いたコードに感じられるほど理解できなくなることがしばしばある。もちろん設計の練度にもよらうが、設計判断について注意を要した点などをコメントに残しておくことで、ひいては未来の自分の役に立てることができる。 お前の先輩は「PHPには型がない」などと知ったかぶって意味不明1なこ

    初心者を戒めるPHP - Qiita
    shunpy
    shunpy 2016/08/10
  • PHP製のWebアプリが遅い場合の基本チェック6点 - ほんじゃーねっと

    先日別のチームから、 「PHPで作成したWebアプリの速度が遅いので助けてくれー」 という相談を受けた。 対応したものの、結構時間がかかって面倒だったので、 今後こういった問題が起こった時に使えるよう、チェックリストをまとめてやった。 基的な内容だけど、 このチェックリストの内容をやってみて、それでもダメなら相談しなさい、 と伝えておくことで相談を減らすフィルタとして働いてくれるはずだ。 PHPプロジェクトに限らず、バックエンドでデータベースを使用している Webアプリのプロジェクトなら試す価値のあるものが多いはず。 調査や対応方法の手軽さ順で並べるとこんな感じ: Webブラウザのデベロッパーツールでレスポンスを計測する Webサーバ(Apache)のリクエスト時間をログに出力する ログ解析ツールでURL毎の付随リクエスト数を確認する データベースのスロークエリログを出力する プロファイ

    PHP製のWebアプリが遅い場合の基本チェック6点 - ほんじゃーねっと
  • PHP クラスの使い方の基本まとめ

    復習としてPHPのクラスの使い方、書き方をまとめておこうと思います。プロパティへのアクセスの仕方などjavascriptと書き方が少し違っているのでそこらへんもしっかり復習しておきたいところです。 PHP クラスの書き方使い方 クラスの書き方は基的には他の言語と同じ。プロパティを宣言して、メソッドを書いていきます。また、クラス名の一文字目は大文字で。 <?php //クラスの書き方 class MyClass { //プロパティ $var1='var1'; //デフォルト値を設定 $var2; const WIDTH_X=300; //定数 //メソッド function method(){ $var2=var1; echo $var2; } //thisを使って自身のプロパティにアクセス function getVar(){ return $this->var1; } //クラスの使い

    PHP クラスの使い方の基本まとめ
    shunpy
    shunpy 2016/04/29
  • 最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (1)導入編 | MONSTER DIVE

    PS4を買ったはいいがなかなか時間が取れず、『アサシンクリード4』のストーリーが遅々として進まないMiOです。RPGでダンジョンに潜るとすべての宝箱を開けてすべての行き止まりを踏破してからじゃないとボスに挑めないタイプです。 今日はそんなこととはまったく関係なく、PHPフレームワーク「Laravel4」の魅力と導入方法をご紹介します。 mioのLaravel初心者講座 目次 「最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (1)導入編」←いまここ 「最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (2)ルーティング編」 「最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (3)コントローラ編」 「最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (4)ビューとBladeテンプレート編」 Laravel 公式サイト PHP

    最新鋭のPHPフレームワーク「Laravel4」でWeb開発 | (1)導入編 | MONSTER DIVE
  • phperなら何度もつまずく! phpmyadminで巨大ファイルの扱いでエラーが出たときに見るべき設定4箇所 - TechNote

    新環境構築時くらいしかいじらない部分なので、あらためてメモ。 1.サイズ的問題の解決 エラー例 アップロードしようとしたファイルが大きすぎるようです(phpmyadmin) php.iniで以下の設定値を変更し、apacheを再起動します。 upload_max_filesize memory_limit post_max_size この3つのサイズの大小関係は、 memory_limit ≧ post_max_size ≧ upload_max_filesize にする必要があります。 2.時間的問題の解決 エラー例 Maximum execution time of 60 seconds exceeded in ... php.iniで以下の設定値を変更し、apacheを再起動します。 max_execution_time デフォルトは60秒となっていますが、例えば3分にした場合は以下

    phperなら何度もつまずく! phpmyadminで巨大ファイルの扱いでエラーが出たときに見るべき設定4箇所 - TechNote
    shunpy
    shunpy 2015/09/02
  • PHPのWebスクレイピング・ライブラリ「Goutte」と「phpQuery」を比較してみた - Qiita

    私はWordPressの自作プラグインを公式SVNに登録しているのだが、ダウンロード状況等のステータスを毎度WordPress.orgまで見に行くのが億劫になってきたので、自分のブログサイトにその情報だけスクレイピングしてきて楽したいなぁ…と思い立った。 以前、自分でスクレイピング処理を書くのはやったことがあるんだが、その時はソース元のHTMLが汚かったこともあって、非常に面倒だった記憶だけが残っている。私の脳内ではスクレイピング=鬼門なのだ(笑) まぁ、他所のサイトの、しかも一世代前のXHTMLあたりで書かれた(おそらくシステムが自動で吐き出していると思われる)構造だけが複雑なHTMLのパース処理をコーディングをしていると、モチベーションがただひたすらに下がり続けるものなんだ──という苦い経験は今回はしたくない。 そんなわけで、今回はPHPスクレイピングツールを利用して、サクっと作って

    PHPのWebスクレイピング・ライブラリ「Goutte」と「phpQuery」を比較してみた - Qiita
  • デバッグし易くしよう! 5:  処理時間を計測 - こめのメモ

    プログラムを実行するサーバーによっては、ある一定時間以上連続して動作して動くプログラムが強制切断されてしまうようです。その意味で自分が作成したプログラムが処理にどれくらいかかるのか知りたいことが多いと思いますので、ここでは、プログラムの開始時間、終了時間、処理時間を表示させる例をご紹介します。 Step5 プログラムの処理時間を処理終了時に表示させてみる 現在時刻を取得する関数にはtime()関数(マニュアル)がありますが、timeでは、秒単位までしか分かりません。ここではマイクロ秒単位まで返してくれるmicrotime()関数(マニュアル)を利用します。 <?php $start_time=microtime(true); echo "開始時間: ".date('Y-m-d H:i:s',(int)$start_time)."<br>"; //メイン処理 $end_time=microt

    デバッグし易くしよう! 5:  処理時間を計測 - こめのメモ
    shunpy
    shunpy 2015/05/28
  • PHPで実行時間をベンチマークするスニペット - Qiita

    function b() { static $start; if (!$start) { $start = microtime(true); return; } static $count = 0; $count++; $now = microtime(true); printf( '%04d : %s ms (%sMB)<hr/>', $count, number_format(ceil(($now - $start) * 1000)), number_format(ceil((memory_get_usage() / 1024 / 1024))) ); $start = $now; }

    PHPで実行時間をベンチマークするスニペット - Qiita
    shunpy
    shunpy 2015/05/08
  • 合肥便民家电维修服务网点

    日媒分析指出� �� ,岸田正考虑脱离以政府为主导�����、执政党影响力偏弱的政高党低决策��� ,转向政府同执政党紧密合作的政高党高目标���。点击进入专题�����:小浪早读湖南二人的遭遇引发舆论愤慨�����,不少民众表示支持她俩状告澳大利亚政府 ��。 查看更多

  • 関数名によく使われる英単語(動詞)の意味とニュアンス | PHP Archive

    PHP に限らず、プログラミングで使われる多くの関数名は「動詞+目的語」という命名規則になっていることが多く、「insertPost()」であれば投稿を挿入するという意味が名前から読み取れます。 では投稿を削除する場合は delete でしょうか? それとも remove でしょうか? 関数は基的に英語を使うのが鉄則ですが、似たような意味を持つ単語などが多く厳密な意味の違いがわかりにくいことがあります。 そこで、プログラミングで関数名として一般的に使われている頻出語句をピックアップし、主な用途と細かい意味、ニュアンス、使い分けについて調べてみました。 追加・作成 set

  • PHPでJSONのデータを処理する方法

    JavaScript Object Notation「JSONとは何か?」について、簡単に説明します。JSONという文字を見て「13日の金曜日」を思い浮かべてしまう人は、まずはその過ちに気付いて下さい。JSONとはJavaScript Object Notationの頭文字を繋げ合わせたものです。Notationは日語で「表記法」。JavaScriptのオブジェクトの表記法を元にした、データフォーマットです。要はJavaScriptのオブジェクトみたいなデータ形式ですね。 様々なプログラム言語が対応しているJSONの最大の特徴は、例えばJavaScriptPHPRubyというような様々なプログラム言語がその取り扱いに対応していることです。データを用意する側は、JSONという形式のデータ1種類を用意しておくだけで、JavaScriptを使う人、PHPを使う人、Rubyを使う人などに対応

    PHPでJSONのデータを処理する方法
    shunpy
    shunpy 2014/12/17
  • PHPネイティブのDOMによるスクレイピング入門 - Qiita

    ところがAPIが提供されていないWebサービスではどうなるでしょうか?多くの場合は、Webブラウザで閲覧することを目的として作成されたHTMLをスクリプトで取得し、解析するしか手段は残されていないはずです。この、HTMLを解析して必要な部分だけ 切り取る(scrape) 手法を総称して、 スクレイピング(scraping) というのです。 基的な流れ (導入編) [http://qiita.com/mpyw] (http://qiita.com/mpyw) の最新記事を最大5件スクレイピングする例を示していきます。具体的な実装は後ほど示しますので、ここではスクレイピングするコードを書くときの考え方をまとめます。 目的とする結果 最初に、目的とする結果を var_dump 関数を用いて示します。 array(5) { [0]=> array(6) { ["title"]=> string(

    PHPネイティブのDOMによるスクレイピング入門 - Qiita
  • PHPでRSS、AtomのFeedを作成する方法

    ATOM <?xml version="1.0" encoding="utf-8" ?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Syncer</title> <link href="http://syncer.jp/"></link> <updated>2015-01-19T03:30:12+09:00</updated> <id>urn:uuid:330bf42e-c715-a264-ee7b-f56f3c1e3618</id> <entry> <title>PHPRSS、AtomのFeedを作成する方法</title> <link href="http://syncer.jp/how-to-make-feed-by-php"></link> <id>urn:uuid:a2539b3e-a515-9066-34ef-3381

    PHPでRSS、AtomのFeedを作成する方法
    shunpy
    shunpy 2014/11/24
  • PHPでデータベースに接続するときのまとめ - Qiita

    【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。PDO に関しては大きく変わっていない部分が多いとは思いますが, PHP 8.x 以降での動作保証はありません。 あらかじめ読んでおきたい記事 Qiita - 【PHP超入門】クラス~例外処理~PDOの基礎 by @7968 初心者がやりがちなミス 以下のどれかに1つでも当てはまるコードは見直す必要があります.付録にリンクを貼っておきましたので,「該当するかも?」という人はクリックして飛んで読んでください.太字にしてあるものは脆弱性に直結する危険度の高いものです. mysql_query などの非推奨関数を利用している SET NAMES あるいは SET CHARACTER SET などで文字コードを指定している そもそもデータベース

    PHPでデータベースに接続するときのまとめ - Qiita
    shunpy
    shunpy 2014/11/23
  • 日本人に優しいLaravel - Qiita

    みなさん、Laravelしてますか? Laravelはここ1年で急激な台頭をみせているPHPのフレームワークです。 githubのスター数は1位のSymfonyに続き第2位です。 以下がGoogleトレンドの結果になりますが、Laravelがいかに近年人気急増中であるかがみてとれると思います。 そんなLaravelですが、実は日語の書籍がたくさんあることをご存知でしょうか? まだ日語が原著のLaravelはでていませんが、海外Laravel(電子書籍)を翻訳した日語版ならたくさんあります。 なんと日人に優しいことでしょう! 今回は、それらLaravelの中から厳選して2冊ご紹介したいと思います。 Laravel Testing Decoded Laravel Testing DecodedはLaravelでmodel,view,controller,その他DB,IoC,AP

    日本人に優しいLaravel - Qiita