facebookのいいねの数やはてブ数、twitterのtweet数の取り方
2013年04月15日 19時45分
ソーシャルなカウントをWordpressの管理画面内、投稿一覧ページに表示したいなぁと思った時に調べたのでまとめます。
一番簡単なのがはてブ数の取得
以下のurlを取得すればOK。
|
http://api.b.st-hatena.com/entry.count?url={ここにurl} |
数値だけがレスポンスで戻ってくるのでパースする必要なし。
続きをみる
FuelPHPで1サイトを作ってみて気が付いた点など
2012年12月21日 00時13分
FuelPHP Advent Calendar 2012(#FuelPHPAdvent2012)21日目です。
前日の記事は@haltcompilerさんのFuelPHPのormを複数DBに対応させる方法でした。
本日は私が初めてFuelPHPを使った時に、躓いたことの解決法を焦点を絞らずに書いていきたいと思います。
続きをみる
FuelPHP:Windows環境でAssetを使うとパスの区切り文字が2重になる
2012年09月06日 19時29分
新規に社内用Webアプリを実装する機会を得たのでここぞとばかりにfuelPHPを使用してみた。
いやはやこれは楽しい。
本で予習しておいたおかげかfuelPHPの親戚的なCodeIgniterとやらを全く触ったことが無くても直感的に扱えている。
基本さえ押さえれば後はこのフレームワークは困ったら大概configの設定で何とかなる。
それでも解決せずに悩んだらグーグル先生に聞くと大体の答えは用意されている。
また驚くべきことに最近のフレームワークなはずなのに日本語情報が多い。既に日本語の解説本まで出版されている。
ここからも人気の高さが伺える。
前置き的な話は置いといてWindows環境でAssetを使用してみると以下のようなタグが生成されてはまった。(V1.2.1)
|
href="/localhost/assets//css//html5reset.css?1342783328" href="/localhost/assets//css//style_base.css?1342787799" href="/localhost/assets//css//style_common.css?1346900805" src="/localhost/fshare/htdocs/public/assets//js//jquery.min.js?1342783375" |
上みたいな感じでassets以降の区切り文字「/」が2重に出力されてしまっている。
こうなってしまうとcssやjsの読み込み自体は問題ないがcss内で指定している画像の相対パスがズレてしまう。
coreを覗いてみるとCOREPATH/classes/asset/instance.php 内のadd_path関数内で
rtrim($folder, DS).DS 文字列の最後についてる区切り文字を削って一つにする処理が記述されているがWindowsだとこれが「¥」でlinuxだと「/」。
ここに流れてくる変数($folder)の値は「”css/”」等となっておりOSのDSと異なっていることが原因ぽい。
これはconfigで設定できるのでCOREPATH/config/asset.phpをAPPPATH/config/にコピーして以下の行を変更する。
|
- 'paths' => array('assets/'), + 'paths' => array('assets'.DS), ~ - 'img_dir' => 'img/', - 'js_dir' => 'js/', - 'css_dir' => 'css/', + 'img_dir' => 'img'.DS, + 'js_dir' => 'js'.DS, + 'css_dir' => 'css'.DS, |
どうやらgithubでの最新版だとこんな設定変更しなくてもcoreクラスの修正がされていてこの症状は発症しない。
公式からv1.2.1のzipファイルをダウンロードしてきて上記症状で困ってる人がいたらこのお気軽手法で回避してみては如何か。
FuelPHP:Rest_Controllerの拡張子を省略した時のフォーマットを変更する
2012年07月12日 02時00分
FuelPHPには強力なWebAPI開発用(?)のコントローラーが備わっていると本や勉強会で知りそれならば使わない手はないと最初に手を出してみたのがRest_Controller。
これはWebAPIなどでjsonやxml、csv等を返すサービスを作る場合にとても便利な機能が満載なのだ。
documentや参考書籍を片目にどうにか希望通りの形までもっていけた。
しかしそこで気になったのがURLの拡張子を省略した時に返却されるフォーマットがxmlだったこと。
拡張子を省略した時の形式をjsonにしたかったので調べてみたらfuel/core/config/rest.phpにdefault_formatなるまんまなものがあったのでfuel/app/config/rest.phpにコピーして値をxmlからjsonに変更してみた。
fuel/app/config/rest.php
|
-'default_format' => 'xml', +'default_format' => 'json', |
しかしこれだけでは不十分で同じrest.phpファイル内にあるignore_http_acceptがデフォルトのfalseの場合、
HTTPヘッダ情報のHTTP_ACCEPTに含まれるmimeタイプがRest_Controllerの$_supported_formatsの中に存在するとdefault_formatより優先されてしまう。
$_supported_formatsをjsonのみにした場合は問題ないがxmlもサポートして拡張子を省略した場合はjson形式に固定して返却したければこの値をtrueにする。
fuel/app/config/rest.php
|
-'ignore_http_accept' => false, +'ignore_http_accept' => true, |
PHP:ssh2接続しscopyでファイル送受信
2012年06月26日 08時36分
CentOSでphpのpecl:ssh2を用意するまでの手順.
pecl, phpizeを使えるようにphp-devel,php-pearをインストール。
libssh2をコンパイルできるようにopenssl-develをインストール。
|
sudo yum install -y openssl-devel php-devel php-pear |
libssh2を取得してインストール
|
wget ttp://www.libssh2.org/download/libssh2-1.4.2.tar.gz tar -xzpvf libssh2-1.4.2.tar.gz cd libssh2-1.4.2 ./configure make sudo make install |
pecl ssh2を取得してインストール
|
wget ttp://pecl.php.net/get/ssh2-0.11.3.tgz tar -xzpvf ssh2-0.11.3.tgz cd ssh2-0.11.3 phpize ./configure make sudo make install |
extentionに追加
|
vi /etc/php.d/ssh2.ini extension=ssh2.so |
apache再起動
|
sudo service httpd configtest sudo service httpd restart |
phpでSSH接続&scopyでファイル取得
上記でpecl:ssh2が使用できるようになったらssh2関数が使えるようになる。
下はscopyでサーバ上のバックアップファイルをローカルにコピーする例。
処理をサーバ側にしてsendすることも簡単に出来るのでmanual読んで好みのバックアップ環境を構築するのが吉。
コマンドもssh2_execで実行できるのでtarでWebサイトを固めたりDBをダンプして落とすことも可能。
|
// 接続 $con = ssh2_connect("192.168.1.xxx"); // パスワード認証 ssh2_auth_password($con, "user", "passwd"); // ファイル受信 ssh2_scp_recv($con, "/tmp/remote_file", "/tmp/local_file"); // 切断 ssh2_exec($con, "exit"); unset($con); |
参考:ssh2関数マニュアル
http://jp.php.net/manual/ja/ref.ssh2.php