タグ

PHPに関するatomerのブックマーク (86)

  • composer 導入をまじめに考える - Qiita

    これは結構大きいPHPプロジェクトに composer を導入する機会があったので、そのときに考えてたことや行ったこと、使い方などをメモするために書いた。 モチベーション 私達は PHP のパッケージの管理を管理する際は pear と git submodule を利用していた。これらのやり方は意外と長続きした。これらにはついて様々な問題を抱えており、ついに限界がきてしまった。 pear pear でパッケージを導入するには root 権限が必要なので、毎回インフラチームに導入を依頼するのが必要があった。 pear で導入されたパッケージについてバージョンを上げようとすると、全APサーバーで更新をかける必要があった。 これらの点から面倒だったのと、気軽に変更できないので、不要になったものも削除されることなく、放置されるのが問題だった git submodule こちらは pear とは異

    composer 導入をまじめに考える - Qiita
    atomer
    atomer 2016/03/16
  • OSXでphpからリモートホストにrsyncを実行する - Muchonovski got it wrong

    ローカルホストからリモートホストに対して,たとえばcrontabなどからrsyncを自動実行するには,そのシェルを実行するユーザのssh秘密鍵/公開鍵を用意して,リモートホスト側の ~/.ssh/Authorization_Keys に公開鍵を設置すればよいのだけど,「ローカル側のphpアプリケーションでフォームのボタンを押したら,特定のファイルを番サーバに転送する」というような処理をしたい時は,このままではうまくいきません。phpはWebサーバの権限で動作しているので,別途「Webサーバというユーザ」のためのssh秘密鍵/公開鍵を用意して設定する必要があります。 そのへんの設定の仕方はSolarisやlinux向けにはチョコチョコWeb上に落ちているのだけど,OSXにはほとんど情報がなく,いくつかの点でハマったので,以下に備忘録をメモしておきますよ。 設定のポイント OS X で 標準

    OSXでphpからリモートホストにrsyncを実行する - Muchonovski got it wrong
  • PHPでTwitterに投稿 - ひらっち's diary

    投稿するメッセージは rawurlencode() でエンコードする。メッセージにスペース(空白)があると、そこで切れてしまうから。 PHP5以上 <?php $url = "http://twitter.com/statuses/update.xml?"; $username = your username; $password = your password; $params = "status=". rawurlencode(message); $result = file_get_contents($url.$params , false, stream_context_create(array( "http" => array( "method" => "POST", "header" => "Authorization: Basic ". base64_encode($user

    PHPでTwitterに投稿 - ひらっち's diary
    atomer
    atomer 2014/07/11
    fopenを用いたpost送信
  • PHPからAmazon Web ServiceのREST APIを利用するサンプル - 感謝のプログラミング

    AmazonのREST APIを使うための準備 Amazonには指定のURLにリクエストを飛ばすことで、商品データを取得できるサービスがある。 このAPIはProduct Advertising APIといい、Amazonの取扱商品の検索や購入、商品情報の参照などの機能をWebサイトから利用することができるようになる。 Product Advertising APIを利用するには申し込みが必要で、それは以下のURLから申し込むことができる。 https://affiliate.amazon.co.jp/gp/advertising/api/detail/main.html 上記のURLから ・「アカウントを作成」を選び必要な情報を入力する。 ・次に、「Manage Your Account」を選択する。 ・アクセスキー情報の「こちらのリンクから、以下の処理が可能です:」をクリック。 「アク

    PHPからAmazon Web ServiceのREST APIを利用するサンプル - 感謝のプログラミング
  • PHPでファイルをダウンロードさせる方法 - hogehoge foobar Blog Style Beta

    サイトからファイルをダウンロードさせるには、「<a href="ダウンロードさせたいファイル名"・・・」のようにファイルに直接リンクさせることでも可能ですが、以下の2点が気になります。 ダウンロードさせるファイルは公開ディレクトリ(htdocsとかhtml以下)におく必要がある。 ブラウザによっては「右クリック→名前をつけて保存」など操作がちょっと面倒。 これを解消するために、PHPを通してファイルをダウンロードさせる方法をやってみました。 PHPのちょっとしたTIPSさんのページの様に「try/catch」を使わなくても実装出来るのですが、今回はあえて「try/catch」を使用した実装を試してみました。 エラーハンドラの設定 まず、ダウンロードをさせるにあたってファイル操作を行うので、ファイルオープン等の例外をキャッチするためにエラーハンドラを設定します。 ユーザー定義のエラーハンドラ

    PHPでファイルをダウンロードさせる方法 - hogehoge foobar Blog Style Beta
    atomer
    atomer 2014/03/12
  • php POST送信時の「Content-type not specified assuming application/x-www-form-urlencoded」エラー | プログラミング備忘録

    phpでフォームを使わずに直接POST送信したら 「Content-type not specified assuming application/x-www-form-urlencoded」 というエラーが出たのでコードを修正した際のメモ。 これはデータ送信する際のheaderが足りない!という内容のエラーらしい。エラー前は↓のような感じでメソッドタイプとデータを渡してPOSTした。 $data =array( 'param1' => $param1, 'param2' => $param2 ); $data = http_build_query($data, "", "&"); $options =array( 'http' =>array( 'method' => 'POST', 'content' => $data ) ); $contents =file_get_contents

    atomer
    atomer 2013/09/19
  • とても簡単にPHPからPOSTリクエストを送信する方法【PHP】 - Programming Magic

    今まで、PHPからPOSTリクエストを送信する方法は、fsockopen関数を使って書く方法しか知らなかったが、調べてみると意外といろいろな方法があった。 fsockopen関数を使う方法     →参考:PHP TIPS Vol.3 ソケット拡張モジュールを使う方法     →参考:HTTPリスエストをそのまま返すPHPサーバ | Shin x blog ストリーム関数+ファイルシステム関数を使う方法     →参考:cURLを使わずに、PHPでPOSTリクエストを送信する - PHPプロ!ニュース HTTP拡張モジュールを使う方法 CURL関数を使う方法     →参考:php curlをつかったオリジナルクラス (myCurlRequest) - hiyuzawa.jpn.org Zend_Http_Clientを使う方法     →参考:【PHP TIPS】 51. ス

    atomer
    atomer 2013/09/19
  • Header only retrieval in php via curl

    atomer
    atomer 2013/07/09
    curl -I
  • 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並行リクエストを行うサンプル
  • WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記

    新年あけましておめでとうございます。今年もボチボチやっていきます。 稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お

    WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記
    atomer
    atomer 2012/08/14
  • PHPのデバッグに便利な関数 – 応用編 - EC studio 技術ブログ

    前回のデバッグ基編に続きまして、今回は応用編です。 debuglib 変数表示はprint_rやvar_dumpなどを使用することが多いと思いますが、 <pre>などで囲ったとしてもとても見やすいとは言えません、、。 そこで、debuglib.phpを使用すればとても見やすく表示してくれます。 ※debuglibはこちらのページから入手できます print_rと同様に、文字列・配列・オブジェクトなどなんでも表示できます。 使い方は簡単で、

  • PHP: ignore_user_abort - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    atomer
    atomer 2012/07/25
  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

  • PHPでのスクレイピングやDOM操作をjQueryっぽく超簡単便利にできる「phpQuery」:phpspot開発日誌

    phpmaster | Server-Side HTML Handling Using phpQuery PHPでのスクレイピングやDOM操作をjQueryっぽく超簡単便利にできる「phpQuery」。 紹介記事を読んで使ってみました。 phpQuery はjQueryのPHP版でDOMの操作をjQueryっぽくできるライブラリです。 HTMLスクレイピングはもちろん、HTMLを追加したり要素に属性を追加等のDOMを操作も簡単に行えます。 jQueryの便利さがPHP上でも十分に使えますので知っておくと確実に面倒な処理を楽に書けるようになるでしょう。 スクレイピング HTMLスクレイピングをする場合には超簡単かつ、jQueryを使ったことがある方なら抵抗なくすぐに習得できます。 ちょっとコードを書いて実験してみました。 と書くと <div id="two"></div>の中身である t

    atomer
    atomer 2012/06/18
  • WordPressの投稿記事内の画像の最初の1枚をサムネイルとして表示する方法

    アイキャッチではなく、投稿記事内の画像を使用してサムネイルとしてトップページやサイドバー等に表示する方法です。調べていたら色々方法がありましたので、書き出してみました。 get_postsタグを使用してサムネイルを表示する get_postsを使用して投稿記事の添付画像を取得し表示する方法です。 下記のコード表示したい箇所に記入します。このコードでサムネイルサイズ(150px × 150px)のサイズの画像を表示します。 <?php $args = array( 'post_type' => 'attachment', 'posts_per_page' => 1, 'post_status' => null, 'post_parent' => $post->ID ); $attachments = get_posts($args); if ($attachments) { foreach

    WordPressの投稿記事内の画像の最初の1枚をサムネイルとして表示する方法
  • PHPフレームワークにTwitter,Facebook等の認証を速攻実装できる「Opauth」:phpspot開発日誌

    PHPフレームワークにTwitter,Facebook等の認証を速攻実装できる「Opauth」 2012年05月24日- Opauth ? Multi-provider authentication framework for PHP PHPフレームワークにTwitter,Facebook等の認証を速攻実装できる「Opauth」。 Zend、CakePHP、Symfony、CodeIgniter等のフレームワークに認証を入れる場合に是非参考にしたいライブラリ。 Facebook, Google, twitter, Linked.in の他、OAuth、OpenID などにも対応。Yahoo!JapanでOAuth等による認証ができますから、これで認証にまつわる処理はすべて実装できそう。 各サイトにおける認証の方法を都度実装するのは非効率ということで、こうしたライブラリで認証処理はサクっと終

    atomer
    atomer 2012/05/24
  • PHP: php:// - Manual

    説明 PHP ではさまざまな入出力ストリームを提供しています。 これらを使うと、PHP 自身の入出力ストリームへのアクセスや 標準入出力と標準エラー出力のファイル記述子へのアクセス、 メモリやディスクを使ったテンポラリファイルストリームへのアクセスができ、 フィルタを使って他のファイルリソースの読み書きに手を加えることもできます。 php://stdin, php://stdout および php://stderr php://stdin、php://stdout および php://stderr は、PHP プロセスの 対応する入出力ストリームへの直接アクセスを許可します。 これらのストリームは複製されたファイル記述子を参照します。そのため、 php://stdin をオープンしたあとでそれを閉じたとしても、 識別子のコピーが閉じられるだけです。STDIN で参照される実際のストリームは

    atomer
    atomer 2012/05/16
  • PHPでマルチタスク?

    cles::blog 平常心是道 blogs: cles::blog NP_cles() « サイトのチューニングに YSlow for Firebug :: twitterの負荷対策 » 2007/09/19 PHPでマルチタスク? 70 1へぇ PHPにはスレッドがないので、WebAPIなどを呼ぶときには平行してリクエストを投げる方法がないので時間がかかるのは仕方がないと思っていたんですが、stream_select()/socket_select()という関数を使えばselect() システムコールを使った並行処理ができるみたいです。 IBM PHP V5 でマルチタスク動作のアプリケーションを開発する - Japan PHP はスレッド動作をサポートしていません。それにもかかわらず、また私が話をした大部分の PHP 開発者が信じていることとは大いに異なり、PHP アプリケーションは

    PHPでマルチタスク?
    atomer
    atomer 2012/05/07
  • CodeIgniterアプリケーションのボトルネックを計測するXHProfの仕込み方:phpspot開発日誌

    Advanced CodeIgniter Profiling With XHProf | Nettuts CodeIgniterアプリケーションのボトルネックを計測するXHProfの仕込み方。 CodeIgniterの中でXHProfを仕込む方法についてガイドされており、簡単に設定ができます XHProfを使ってPHPアプリケーションの遅い部分が視覚的にわかるのでCIを使っていたり、導入を検討している方は参考にしてみるとよいかも application/config/config.php にフックを仕込んでます フックから呼び出されるクラスの定義です graphvizによって処理をグラフ化してくれるのがXHProfの特徴ですが、当然これも実現できます 関連エントリ PHPプロファイリングに役立つXHProfを色々便利にしてくれる「XHGuiPHP&jQuery&CSS3でMacのPho

  • CodeIgniterのログレベルを変更する(入れ替える) : Re:

    ログレベルがデフォルトで 0:Disables1:Error2:Debug3:Informational4:Allとなっているのだが、log_thresholdへの設定値以下が全て出力されてしまうので、そのままだとDEBUGな嵐になる。 そんなわけで、シンプルにDebugとInformationalの設定値を入れ替えて設定値を2とする簡易対応。 /application/libraries/MY_Log.php <?php class MY_Log extends CI_Log { public  $_levels = array('ERROR' => '1', 'INFO' => '2',  'DEBUG' => '3', 'ALL' => '4'); } マスクするレベルとしてこの順番の方が都合が良い。

    CodeIgniterのログレベルを変更する(入れ替える) : Re: