Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
PHPでのPOST送信には大まかに以下の様な4パターンほどの方法があります。 file_get_contents fopen fsockopen curl ただし、fopenに関してはfile_get_contentsとほぼ同じ様な処理なので、こういった方法もあるという参考程度にしてください。 簡単な送信であればfile_get_contentsを使う方法がベターです。 通信量が多い場合や、重い処理の場合はcURLを使うと良いです。 file_get_contentsを使った方法 $url = 'http://cppe.hol.es/post.php'; $data = array( 'msg' => 'メッセージ', ); $context = array( 'http' => array( 'method' => 'POST', 'header' => implode("\r\n",
PCIDSSの対応で各決済会社のTLS1.2縛りが始まりました。 乗り遅れてしまった!! やばい!間もなくじゃない? 的な話もチラホラ聞きます。 phpで作られているシステムであれば、curl等を用いて決済情報に確認を しにいったりリクエストを投げたりしているところが多いのではないでしょうか。 CentOS6以降であれば普通にyumで対応出来ちゃうのですが、 CentOS5系ですとyumでは無理。 proxyで逃げるという策もあるのですが、サーバーも立てられない環境だと、 なかなか安易に逃げれない。 という訳で、今回はphp-curlを更新して対応させちゃう話です。 /usr/localにはソースインストールしているような形跡が無い前提で、 php-5.3.19の環境を元に書いていますので、 その辺は自身の環境と読み変えて下さい。 全て最新を入れたいところなのですが、 全て最新だとなかなか
TLS1.2に対応する SSL v3.0の脆弱性からTLSへの対応が求められてきたが、ついにTLS1.2以外の通信は無効にするとの連絡がきた。 結論から言うと、TLS1.2に対応するためには、cUrlのバージョンが7.34.0以上かつOpenSSLのバージョンが1.0.1以上でなければならない。 環境 ウチのサーバー環境は次の通り。 エックスサーバー:X20プラン PHP:5.6.30 cURL:7.47.1 SSL:OpenSSL/1.0.1e エックスサーバーはPHPのバージョンを上げると、あわせてcURLやOpenSSLのバージョンが上がる仕組みだ。 下記のPHPプログラムをサーバーにアップロードして、ブラウザからアクセスすると、自分のサーバー環境が確認できる。 <?php phpinfo(); ?> PHPプログラム cURLを使ったPHPプログラムのサンプル(POST送信)。 <
久々にphp書いたので晒します。 「今どきxmlとかこれ何のAPIだよwww」というツッコミは受け付けません、察してください。 // 初期設定 $API_ID = 'YOUR API ACCESS ID'; $API_PASSWORD = 'YOUR API ACCESS PASSWORD'; $API_VERSION = '1.0'; $API_ENDPOINT_URI = 'http://foo.var/api'; $data = array( "api_id" => $API_ID, "api_pass_hash" => md5($API_PASSWORD . time()), "version" => $API_VERSION, "condition" => 'paid' ); // postで接続 $ch = curl_init(); curl_setopt($ch, CURLO
PHP + cURL 実装で注意すること POSTパラメータを http_build_query()に通して application/x-www-form-urlencoded 扱いにする必要に応じて文字エンコーディングの変換を行う cURL でPOSTするパラメータを http_build_query() に通さない場合、multipart/form-data で送信され文字化けの可能性が高くなります。また、Webアプリケーション側とAPI側で扱う文字エンコーディングが異なる場合、変換処理が必要になります。 実装例 API から返却されるデータの形式はQueryString( 例: name=taro&age=15&country=jpn ) 、Webアプリケーション側の文字エンコーディングはUTF-8、API側の文字エンコーディングはShift-JISと仮定した場合の例です。 <?ph
$ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => 'http://hoge.com/fuga', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query(['hoge' => 'fuga']), ]); $response = curl_exec($ch); curl_close($ch); 正解は、http_build_query するだけ! なんで? 一番の問題は、どちらのコードも動いてしまうこと。ただ、 bad.php はすごく時間がかかるので、やっちゃだめ。 headerを見てみると、good.php は Content-Type: application/x-www-form-urle
Swaggerとは Swaggerは言語に依存しないREST APIのインターフェース仕様とそのツール群を指す。 Swaggerの仕様に沿ってAPIを定義することで、人間が理解可能で、コンピューターにも解析可能なAPI仕様書となる。 引用:http://d.hatena.ne.jp/takeR/20151207/1449469957 らしいです。 ともあれ導入 環境 CentOS 6.5 x86_64 PHP環境(PHP5.5、Nginx1.8) CodeIgniter3.0.6 composerインストール $ curl -sS https://getcomposer.org/installer | php All settings correct for using Composer Downloading 1.0.0... Composer successfully installe
こんにちは。ライフスタイル事業部のアリタと申します。 Yahoo!のサービスも裏側ではWebAPIが多用されています。1つのページを構成するのに5、6個のAPIを使うこともざらですが、それではさすがにパフォーマンスが問題となってきます。その原因と対策例を紹介していきましょう。 ■モデルケース 例として、3つのAPIから取得したデータをマッシュアップしたページがあるとします。(ここではサンプルコードを簡単にするため、APIの代わりに以下のRSSで説明としました) Yahoo!トピックス エンターテインメントRSS http://dailynews.yahoo.co.jp/fc/entertainment/rss.xml Yahoo!ミュージックマガジン最新情報RSS http://magazine.music.yahoo.co.jp/rss/ALL/rss.xml Yahoo!検索トレンドR
curl_multiはselectシステムコールを使って同時に複数のHTTPリクエストを行うことができます。マルチスレッドやらマルチプロセスを使っているわけではなく、原理はnode.jsなんかと近いI/O多重化で、一度に一つのことしかしていません。 PHPのcurlはlibcurlのAPIをほぼ踏襲しており、ちょっと取っつきにくいです。クラスでラッピングして、curl_close()などはデストラクタで呼ばれるように自動化すると、もう少しすっきりすると思います。 <?php /** * curl_multiでHTTP複数リクエストを並列実行するテンプレ * */ //タイムアウト時間を決めておく $TIMEOUT = 10; //10秒 /* * 1) 準備 * - curl_multiハンドラを用意 * - 各リクエストに対応するcurlハンドラを用意 * リクエスト分だけ必要 * *
概要 SlackのWebhookを利用して、API経由でメッセージをポストする。 ささっとPHPで試したい方や、botを作りたい方向け。 ご参考になれば。 1.Webhookの設定 こちらより、「Post to Channel」に投稿先チャネル名を入力して「Add Incoming WebHooks integration」をクリック。 生成されたWebhook URLをメモる。 2.Webhookが正常に使えるか確認 下記コマンドで投稿できるか確認する。 URL部分には、1.で作成したWebhook URLを指定する。 $ curl -X POST "https://hooks.slack.com/services/XXX/XXX/XXX" -d 'payload={ "channel": "#general", "username": "my_bot", "text": "test",
このドキュメントの内容は、以下の通りです。 はじめに HTTPレスポンスの構造 HTTPレスポンスヘッダを取得する サンプルコード 実行例 はじめに インターネットでは、たくさんのウェブサービスが提供されています。一般の利用者は、パソコンやスマホで、ウェブサービスにアクセスしています。ブラウザで検索エンジンやソーシャルネットワーキングなどのサイトにアクセスするとき、ブラウザとウェブサービスの間では、HTTPプロトコルなどを利用して、通信が行われ、サービス・情報が提供されます。 そのウェブサービスは、いろいろなシステムと通信をして、サービスを提供していることもありますし、ウェブサービスにプログラムでアクセスして、データの取得・更新などを行うこともあるでしょう。 インターネットでは、いろいろなプロトコルが利用されていますが、よく使われているプロトコルの1つがHTTPでしょう。 スクリプト言語の
cURL ライブラリ php には cURL ライブラリ があって、このCライブラリのラッパーを使うことでほとんどのネットワークリクエストを扱うことが出来る。 cURLの本家は http://curl.haxx.se/ で、ここでlibcurl を一式準備してC言語からネットワークリクエストが扱えるんだけど、良くわからないし、C言語自体の使い方にトラブルことも考えられる。 php のcURLを使うメリット パッケージとして提供されていて、どこでも簡単にHTTPリクエストを扱うことが出来る。 php だけで書かれたHTTPリクエストライブラリは設計が古臭かったりしてちょっと・・・ file_get_contentsでも出来るんだけど、敢えてcURLで作るのもなれると便利だったりするよ。 curl の基本的な使い方 php の libcurl 関数はC言語のそれと同じような感じになっていて、初
きっかけ 仕事で、既存のシステムの拡張でOAuth2を使った認証とAPIの提供をするかもしれない、という話が出たので、個人的にOAuth2の調査を始めた。 そのシステムはphpで作られていたので、ひとまずphpで利用できるOAuth2のライブラリを調べる。 そこで、bshaffer/oauth2-server-phpのことを知り、そのデモ環境のbshaffer/oauth2-demo-phpを自分の環境で試した。 デモ環境のドキュメントを読んだ際に「Silex」というワードを知り、興味を持ったので調べてみた。 Silex 試す前に調べて知った範囲だと以下。 php 5.3以降対応のmicro framework。 Symfonyと同じ開発元。おそらくSymfonyに対してmicroであるという位置づけのよう。 Sinatraの影響を受けている。 Sinatraに影響を受けていることとmic
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
エラーハンドリングの基本 PHPのlibcurl拡張でHTTPリクエストをする際、色々なエラーが起きることが考えられる。 curl_errnoとcurl_errorで直近のexecで発生したエラーを調べることができる。 curl_exec()の戻り値がfalseだったらエラーだと判定できるのだけど、詳細なところがわからないので、明示的にエラーが起きたかを調べた方がよさそう。 例外を使いたいなら、ラッパークラス/関数でハンドリングして適当なException型を投げればよいだろう。 <?php // 単純なcurl関数のラッパー // 毎回コネクションを切断するので非効率かも function getHttpContent($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $body
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く