タグ: php
【メモ】Laravelのインストールと設定【#np2020】
前提
- 前段にCloudFrontを入れてSSL対応
- アプリケーションごとにサブドメインを変えてアクセスしたい(api.example.comとadmin.example.comとか)
- Gitで管理
Amazon Lightsailを準備して静的サイトをデプロイする(Apache2.4+PHP7)【#np2020】
【メモ】printf / sprintf のフォーマット文字列内で「%」を使う【PHP】
% – パーセント文字。引数は不要です。
PHP: sprintf – Manual
gettextのmo/poファイルを更新したらApacheを再起動する
サイトを国際化するにあたってgettextを使って、mo/poファイルを作って翻訳を行うということはよくあり、今触っているシステムでもFuelの下で(Fuelのi18nは使わずに)gettextを使って日本語版と英語版の切り替えを実現しています。当然、このファイルは頻繁に更新されるわけですが、ローカルで確認していると更新後にロケールが正しく取得されずに日本語版で英語が表示されてしまうことがよくあります。何度かページ更新したり、時間をおいたりすると直るんですが、ローカルならまだしも本番環境で同じことが起こったら軽く事故ですね。ファイルサイズとかサーバスペックとかでキャッシュ更新タイミングが決まってるのか、運良く本番環境では発生していなかったようですが。
はてなブックマークフィードを取得しようとするとエラーが出る件
自分のはてなブックマーク一覧を取得するスクリプトが上手く動いていなかったのを修正した
【メモ】PukiWikiのURLの短縮化
前提
短縮URLサービスを使っても良いんだけど、URLを見てpukiwikiのリンクであることがわかると社内共有とかで便利なので、ほどほどに短縮したい。プラグインを使う
umoriguさん制作のプラグインを使う 自作プラグイン/s.inc.php – PukiWiki-official umorigu/pukiwiki.urlshortener · GitHub これで、こんな感じに短縮されるhttp://hoge/pukiwiki/index.php?PHP%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3
↓
http://hoge/pukiwiki/?&2dc9e012b6
mod_rewriteを使ってさらに短縮
.htaccessファイルを配置。内容はこんな感じ。RewriteEngine on
RewriteBase /
RewriteRule ^wiki/(.*)$ /pukiwiki/?cmd=s&k=$1
これで、こんな感じに短縮される。
http://hoge/pukiwiki/?&2dc9e012b6
↓
http://hoge/wiki/2dc9e012b6
【メモ】楽天GOLDのFTPにPHPでファイルをアップロードする
(今どきFTPですか?っていう議論はさておき)FTPサーバにアップロードするってこれまでも需要がありそうだったのになぜかやったことがなかったので、調べてやってみた。サンプルコードはこんな感じ。
ポイント
- ポート番号を「16910」で設定する
- パッシブモードをオンにする
楽天市場の商品ページにPHPでの処理結果を表示させる
色々制約がある楽天市場の商品ページ。通常だとJavaScriptも使えませんが、店舗用のサーバサービスである「楽天GOLD」を使うとJavaScriptが使えます。また「楽天GOLD」のページであれば、楽天市場のページにiframeを使って埋め込むことも可能です。 楽天GOLDでは基本的にhtmlしか使えないので、基本的にJavaScriptでの処理になります。それでやっても良いんですが、楽天GOLDは基本的にファイルサーバ的なサービスなので、処理系を作るのには向いてません。なので、プログラム処理する部分はサーバを借りてそこに置くしかありません。 で、結局流れとしては、
[自サーバ] プログラム処理して結果出力 ↓ [楽天GOLD] Ajaxで出力を取得して表示 ↓ [楽天市場] 楽天GOLDのページをiframe使って商品ページに埋め込むという感じ。
注意点
自サーバの出力を取得するためには、自サーバ側でクロスドメインを許可しておく必要があります。詳しくはこの辺を参考に。 続 クロスドメインで使う XMLHttpRequest と CORS の話 | 日頃の行い PHPでやるんなら、出力時にヘッダを付加しておくのが便利です。header('Access-Control-Allow-Origin: *');
Ajax取得はjQueryで適当にやりました。以下、サンプルコード。
$(document).ready(function() {
$.ajax({
url : 'http://hogehoe/sample.php',
type : 'GET',
dataType : 'html',
crossDomain : true,
}).done(function(data, textStatus, jqXHR) {
$("#result").append(data);
});
});
楽天市場は色々と使いづらいけど、やってみればいろいろやり方はあるんだなー