タグ

phpとPHPに関するteppochanのブックマーク (59)

  • 「正規表現再入門」を PHP カンファレンス 2016 で発表してきました - Shin x Blog

    2016/11/03 に開催された PHP カンファレンス 2016 にて、「正規表現再入門」を発表してきました。 資料 speakerdeck.com togetter.com 内容は、正規表現のマッチングの動き、量指定子のマッチングパターン、バックトラックやパフォーマンスへの影響についてです。 下記のエントリを下地にして、マッチングの動きを分かりやすく伝えることを意識してお話しました。 blog.shin1x1.com 参加された方からは、「分かりやすかった」といった好意的なフィードバックを頂けたので、発表して良かったです。 これから正規表現を学ぶにしても、マッチングがどのように行われるかをざっくりと知っておけば、正規表現を書く際にも動きが想像できるので、この発表がお役に立てると嬉しいです。 偶然、同じ時間帯に発表があった徳丸さんのセッションでも正規表現に触れられていたようで、Twit

    「正規表現再入門」を PHP カンファレンス 2016 で発表してきました - Shin x Blog
  • 第2回 Hello, PHP Extension! | gihyo.jp

    今回から実際に拡張モジュールを作っていきます。まずは定番の“⁠Hello, World!⁠”から始めましょう。 はじめてのspecファイル CodeGen_PECLを使った拡張モジュールの開発には、まずXML形式で仕様を記述したspecファイルを書かねばなりません。リスト1に基的なspecファイルの内容を示します。 リスト1 helloworld.xml <?xml version="1.0" encoding="UTF-8"?> <extension name="helloworld" version="1.0.0"> <summary>Hello, Extension World!</summary> <description><?data This is my first PHP extension module. ?></description> <maintainers> <m

    第2回 Hello, PHP Extension! | gihyo.jp
  • 【PHP】WebサービスのAPIを使ってCSVファイルを作ってみた! - Web.fla

    ラジオボタンによる国コードの設定 今回は、インドとシンガポールとタイの3国のツアーを取得したいのでvalueの値にそれぞれの国コードを設定しておきます。もちろんラジオボタンなので一つしかチェックできません。 フォームの送信先は同じファイルなのでapi_test.phpをactionに指定します。methodはPOSTです。 APIからデータを取得してCSV作成までのPHPの処理 まずはAPIを利用してデータを取得してCSVを作成して書き込むまでの処理を記載します。PHPでプログラムを書く場所はDOCTYPEより上に書きました。作成したCSVを一覧表示するPHPの処理は後述します。 リクエストURLやCSVファイルを変数に入れておく まず変数を見てください。 $base_url='http://webservice.recruit.co.jp/ab-road/tour/v1/?key=自分の

    【PHP】WebサービスのAPIを使ってCSVファイルを作ってみた! - Web.fla
  • コーディング規約の10のポイント

    さて今回はコーディングの仕方についてご紹介します。 それぞれ書き方というものがあると思いますが、私個人的にはZendFramworkの規約に基づいた形に作成しています。 なぜかといいますと、PHP開発者の会社がZendなんです。PHPもZendが作っているようなものなのでその開発者の規約に基づいて利用しているわけなんですね。 だからある程度きれいで見やすいコーディングが行えるのではないでしょうか? この規約は構文規則ではないので各自の判断にお任せします。 スポンサーリンク はじめは独自に記述しておりましてZendFrameworkの規約?めんどうだよ~って思っておりましたが、結局Zendの規約に準ずる形になってきていますね。 最近は意識して変えております。プラスしてCakePHPの規約も取り入れた形になっています。 規約1.PHPコードのみの場合は終了ダグは不要 これはどういうことかといい

    コーディング規約の10のポイント
  • PHPでJSONのデータを処理する方法

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

    PHPでJSONのデータを処理する方法
  • XAMPPのインストールと設定、セキュリティ、使い方、トラブル対処

    ローカル環境に開発環境を構築 XAMPPとは? ローカル上に、Webサーバーやデーターベースを構築し、PHP ,MySQL ,Perlを利用できる環境を簡単に構築できる無料のソフトウェア。 Windowsだけではなく、LinuxMac 用もあります。 Macの場合、僕には、XAMPPの設定は難しかったです。 Mac用には、MAMPというものがあり、以前、記事にしました。 MAMPのインストール、設定、使い方 for MacINTERNET HACK | INTERNET HACK. XAMPPのダウンロード XAMPP Installers and Downloads for Apache Friends. Download XAMPP. XAMPPのインストール前の準備 Apache以外のWebサーバーがあれば、XAMPPのインストール前に、アンインストール。 また、以前にPHP,

    XAMPPのインストールと設定、セキュリティ、使い方、トラブル対処
  • 「10日でおぼえるPHP入門教室 第4版」はセキュリティ面で高評価

    弊社社の麻布十番移転に伴い、社近くの麻布図書館を利用しています。麻布図書館は土地柄のイメージにあう瀟洒な建物で、蔵書がない場合は港区の他の図書館から取り寄せ(無料です)ができますので、よく利用しています。今回は、山田祥寛さんの「10日でおぼえるPHP入門教室 第4版 」を借りて読んでみました。一読して、書がセキュリティにもよく配慮されていることがわかりましたので、以下にご紹介したいと思います。 クロスサイトスクリプティング(XSS) 表示の際にHTMLエスケープするという原則を忠実に守っています。そのため、下記の e() という関数を定義して呼び出しています。 function e($str, $charset = 'UTF-8') { return htmlspecialchars($str, ENT_QUOTES, $charset); } その他にもXSS対策として重要な下記の

  • [PHP] サーバーにあるWebフォントで文字を画像変換してみる

    サーバーにWebフォントをインストールして、PHPを使って文字を画像データに変換してみました。 imagefttextでテキストを画像変換する手順 PHPで文字を変換するために、imagefttext というメソッドを使っています。 これを使うと、TrueType フォントを使用して画像に書き込みができるようになるんですな。 1. パラメータを指定 「size」「font」「value」「color」とそれぞれのパラメータをPHPに渡して自由に画像生成できるようにします。また、それぞれの値が省略されたときにも対応するようにデフォルト値を指定。 カラーは6桁のRGB値を指定して、内部で16進数に変換しています。 PHP define('DEFAULT_SIZE',30); define('DEFAULT_FONT','migmix-1p-regular.ttf'); define('DEFA

    [PHP] サーバーにあるWebフォントで文字を画像変換してみる
  • 決済プログラミングをはじめてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、決済金融カンパニーの近藤です。 Yahoo! JAPAN ウォレット FastPayをリリースして1年近くたち、定期的にアップデートをしております。 (弊社で開催するOpen Hack DayでもFastPayを利用しています) 数行で動くのが売りのFastPayですが、基的なところの問い合わせをいくつか受けたりします。今回は決済になじみのないエンジニア向けに、クレジットカード決済についてもう少し身近に感じてもらいたいと思い、執筆させていただいております。 クレジットカード決済の仕組み 大ざっぱにわけてカード利用者、カードが利用できる加盟店、利用者へのカード発行や加盟店管理を行うカード会社が関わっています。 このうち

    決済プログラミングをはじめてみよう
  • PHP 連想配列に追加あれこれ

    PHPのフレームワークを使っていると、理想の形に配列を変形したくなることがちょいちょいある。 連想配列を 単純な配列に。 $test = array(); foreach($shop_area as $value ){ array_push($test, $value['ShopArea']['area_id']); } こうすることで、単純配列に。 連想配列を、単純な配列にすることはよくあって、 連想配列だと 配列の中身をうまく検索できないのだ。 ちなみに$test = array();はけっこう大事。array_pushはあらかじめ配列になっているところにデータを追加する関数だから、 空でよいのであらかじめ配列を代入しておく必要があります。 連想配列に追加してみる $today の中身はすでに連想配列が入っていると過程して、全ての$today[‘user’]のループ中に[‘dir’]と

    PHP 連想配列に追加あれこれ
  • PHP開発には単なるエディタだけでなく、もっと良い環境を - Webアプリエンジニア養成読本 AdventCalendar2014 22日目 - uzullaがブログ

    いきなり宣伝ですが、エンジニアのお祭りYAPC::Asia Tokyo 2015の情報をもれなくチェックするためのメール通知サービスが開始されました! YAPC::Asia Tokyo 2015 毎年「チケット販売いつのまにおわったの…」等といった悲しい声をいただきます。わすれないように是非上記リンクより、メールアドレスを登録しましょう! さておき、エントリはWebアプリエンジニア養成読アドベントカレンダーです。 Webアプリエンジニア養成読 Advent Calendar 2014 - Qiita Webアプリエンジニア養成読[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus) 作者:和田 裕介,石田 絢一 (uzulla),すがわら まさのり,斎藤 祐一郎技術評論社Amazon私の担当分においては、こちらの書籍でお話でき

    PHP開発には単なるエディタだけでなく、もっと良い環境を - Webアプリエンジニア養成読本 AdventCalendar2014 22日目 - uzullaがブログ
  • Goutte(PHP)でスクレイピングするときのメモ | Design Hack and Slash

    自分のサイトをセルフ スクレイピングするときにハマったことがあったのでメモしておきます。直感に従い、PHPGoutte(グット)というライブラリを使わせていただきました。 Goutte の基的な説明や使い方は以下のページが詳しいのでご参照ください。 WebスクレイピングライブラリGoutteで遊んでみる – hnwの日記 Webスクレイピングを行う(Goutte)[PHP] – Build Insider FriendsOfPHP/Goutte ・ GitHub どちらも良い記事です。が、ユーザー エージェント(UA)の設定ができませんでした。筆者が何かをミスったのかも知れない。Goutte が更新されたのかも知れない。とにかく書いてある方法ではダメでした。 Goutte でユーザー エージェントを設定する require_once 'goutte.phar'; use Goutt

    Goutte(PHP)でスクレイピングするときのメモ | Design Hack and Slash
  • 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でHTTPの並行ダウンロードを実現する(Guzzle編) - hnwの日記

    PHPで最近注目のHTTPクライアントライブラリにGuzzleがあります。日での知名度はまだまだという印象ですが、かなり高機能かつ真面目にメンテナンスされている印象で、今後のデファクトスタンダードになりうるライブラリと言えるでしょう。 稿ではこのGuzzleを使ってWebサーバから並行にダウンロードする方法を紹介します。Webブラウザのように同時に複数コネクションを管理しながらKeep-Aliveでコネクションを使い回しますので、下手なコードで実現するより接続先Webサーバにも優しいはずです。 Guzzleの特徴 まずは、Guzzleについて僕が特徴的だと思う点を紹介します。 パッと見でわかりやすいインターフェース cURLは必須ではないがデフォルトでcURLを使う cURLの無い環境がありうるので、cURL無しでも動くのは嬉しい cURLのわかりにくいインターフェースを隠してくれるの

    PHPでHTTPの並行ダウンロードを実現する(Guzzle編) - hnwの日記
  • PHPだけど速ささえあれば関係ないよねっ - 私の昆布

    これは 1 年 7 ヶ月 6 日 前に投稿されたものです。最新のものではありませんので、間違っているかも知れません。 そんなこと無いわけで。 さて、PHPの高速化といえば、 コード最適化 Accelerator入れる PHP Extensionを作る くらいだと思いますが、今回は「PHP Extension」を使いたいと思います。 なお、この記事で登場するPHPのバージョンは、5.3.3です。 SWIGを使う 素でPHP Extensionの作成となると、覚えることが多くて結構大変なので、「SWIG」というものを利用します。 これは、C/C++のプログラムをPHPを含めたインタプリタ言語やJava、C#などで半自動的に使えるようにしてくれるというものです。便利ですね。 「.i」というSWIGに向けた処理内容を示した「インターフェースファイル」というものを作成する必要がありますが、一度作れ

    PHPだけど速ささえあれば関係ないよねっ - 私の昆布
  • PHP の無名関数が便利なので今すぐ使ったらいいと思うよ、WordPress ならフックとかでね(PHP 5.3.0以降 – 林家次男

    PHP の世代交代が進んでますね! いい加減 PHP 5.2 に対応しなくてもいい流れになって欲しいものですが、レンタルサーバーによっては未だ 5.2 のところもあるとかないとか。 5.2 はすっぱり諦めて、無名関数を使いましょう。 無名関数とは 参考&引用: PHP: 無名関数 – Manual 無名関数はクロージャとも呼ばれ、 関数名を指定せずに関数を作成できるようにするものです。 コールバック パラメータとして使う際に便利ですが、用途はそれにとどまりません。 他の言語なら当たり前のように使えていたのがようやく。 関数の名前をいちいち付けずに実行できる、ってやつです。 PHP 5.3 以上で対応。 無名関数、どういうときに使うか PHP マニュアルの説明通り、コールバックで使うことが多いです。 その他にも変数に代入できたり。 // $wp に無名関数を代入 $wp = function

  • 新プログラミング言語Hack本執筆しました - よねのはてな

    先日リリースされた新プログラミング言語のHackを執筆しました。 PHPのシステムをHHVM移行しましょう! Facebook発 新プログラミング言語「Hack」スタートアップガイド 作者: 米林正明出版社/メーカー: 技術評論社発売日: 2014/04/01メディア: Kindle版この商品を含むブログ (1件) を見る amazon http://www.amazon.co.jp/o/ASIN/B00JE4PMMO gihyo https://gihyo.jp/dp/ebook/2014/978-4-7741-6445-8 kobo http://bit.ly/1kqxVKZ 執筆中にHHVMのバージョンアップがあって当初の執筆内容で動作しなくなったり少々焦りましたが、リリースされて間もないプロダクトに関する有益な情報を執筆出来たと思います。 HackはHHVMで動作するプログラミン

    新プログラミング言語Hack本執筆しました - よねのはてな
  • PHPを数行書きながらフレームワークを理解する

    フレームワークと強そうですが、ものすごく単純化して考えると、以下の1行に集約されます。 View(Action($_GET['url'])); これは何をしているかというと? どこにアクセスされているかを取得する。 ($_GET[‘url’]) 必要な処理を施す。 (Action) 処理の結果を表示する。 (View) どこにアクセスされているかを取得する 思い切って、.htaccessに次のように書いてしまいます。 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] これは「どんなURLを叩いても全てindex.phpを呼ぶ」というものです。(そこに既にファイルが存在しなければ

    PHPを数行書きながらフレームワークを理解する
  • PHP 5.6 に採用されるデバッガ phpdbg を使ってみた

    Shin x blog Advent Calendar 2013 の 21 日目です。 第 12 回関西 PHP 勉強会 にて、PHP 5.6 に採用予定の phpdbg をひと足先に PHP 5.5.7 で触ってみました。 phpdbg phpdbg は、gdb ライクな PHP 用のデバッガです。ブレークポイントを設定して、その時点のコンテキストを確認したり、ステップ実行などができます。 phpdbg | php debugger インストール PHP 5.6 から同梱される予定の phpdbg ですが、これ自体はすでにリリースされており、PHP 5.4 から利用することが可能です。インストールには、PHP のソースコードが必要になるので、PHP も ソースからインストールします。 $ sudo yum -y groupinstall "Development Tools" $ sud

  • WordPressでAjaxする方法をざっくりまとめておく

    アドベントカレンダーには参加してないけど今日も今日とてWordPressネタの更新です。今年に入ってから17記事目ですよ。concrete5 Japan Inc.なんてやってるのにおかしいですね。 それはさておき月末の追い込み時に調べる時間がないのにまとまった資料がなくて困った件の覚え書き。30分で終わらせようと思ったのに1時間以上かかってしまった…。WordPressのAjaxはやり方が多すぎてとりあえずこうしとけというのがまとまってないように思います。どうせ山ほどあるWordPressにも書いてないだろうしな。これでいいのかよく分からないので、間違ってたらツッコミお願いします。 んで、どうも wp_ajax_{action_name} または wp_ajax_nopriv_{action_name} というアクションフックで処理するのがよさそうである。noprivの方はログアウト中、