Help us understand the problem. What is going on with this article?
環境 CentOS 6.6 Amazon Linux 2015.03 hvmでも検証済 phpbrewのインストール epelとremiを入れる wget https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh epel-release-6-8.noarch.rpm sudo rpm -Uvh remi-release-6.rpm enableを0に変更する sudo vim /etc/yum.repos.d/epel.repo yumでupdate sudo yum update 色々必要っぽいの入れる(実はこの必要なものでよくインストール
FuelPHP Advent Calendar 2011 16日目です。 @madmamor です。 先日の15日目は @eifuku さんの cent osでのphp5.3環境のセットアップ with "yum" でした。 FuelPHPのcoreクラスを拡張したくなるケースは、色々と出てくると思います。 以前、Logクラスを拡張したので、そのまとめ的な内容です。 先に、ドキュメントは以下になります。 公式: http://docs.fuelphp.com/general/extending_core.html 日本語: http://press.nekoget.com/fuelphp_doc/general/extending_core.html 私がLogクラスを拡張した理由は2つ有ります。 (1) メソッド名の簡略化 Log::info は Log::i で呼び出したい。 Log:
PHPのようなゆるふわな言語を安全に書くためには、コードの綺麗さや作法などを担保する手段が大切になります。 IDEを使う、JenkinsなどのCIサーバーを立ててチェックさせるなどの方法が考えられますが、今回はgitの pre-commit hook を利用して、一定の条件を満たしていないコードはそもそもリポジトリにコミットができないようにしてみました。 できるようになったこと 今回以下の様な事ができるようになりました。 git commit時に、 コミットされるファイルにシンタックスエラーがあるPHPファイルがる場合、コミットが失敗する。 コミットされるファイルに作法の悪いコードが有る場合、(使用してない変数があるなど)コミットが失敗する。 PSRに則ってないファイルが有る場合(改行コードやインデントの統一など)、整形してからコミットする。 これにより、レポジトリ上にコミットされるファイ
サクウェブTVはコチラ↓↓↓ 特定のメールアドレス宛にメールを送信して 特定のPHPを実行させるような場合、 送られたメールの内容をPHPから取得して整形して 使用したい場合があるでしょう。 ※ メール送信で特定のPHPを実行させる方法は 「qmail メール プログラム 起動」などと検索してください。 そのような場合は、標準入力から以下のように情報を取得します。 $stdin = file_get_contents('php://stdin'); するとメールの情報がずらっと$stdinに入りますので、 これをゴリゴリ整形してもいいですが、 PEARのmimeDecode.phpを使用すると楽です。 まず、 Mail_mimeDecode ここからmimeDecode.phpをダウンロードして 適宜require_onceしておきます。 (デフォルトで入ってなければ) そして、たとえば
本日 PHP で配列にデータを格納し serialize してデータの受け渡しをしていたら IE8 で unserialize してデータを復元することができないバグに遭遇しました。具体的には以下のようなエラーが発生。 Notice: unserialize() [function.unserialize]: Error at offset 0 of 2 bytes in /var/usr/to/path うまく値の受渡しができていないのか、途中でデータが書き換わってしまったのか、様々な問題を調査しましたがどれも該当せず3時間。Web 上で情報を集めるもそれらしい問題に遭遇してる人がおらず解決できず。 どうしようもなくなったので、30個くらいある配列すべてをひとつずつ調べてチェックしていくと、どうやら30個の中の3配列が原因だということが判明しました。日本語の文字コードがおかしいのかと思っ
最近はようやく本格的に vim を使ってコーディングするようになりましたが、まだまだ慣れない & 微妙な不満があったりします。 移動系がキーボードで全てできるのは、確かにかなり楽なように思えます。 話が変わりますが新しく違う言語を勉強しようと思う時、何を一番初めに調べますか? 構文はもちろん、インストール方法とか色々ありますよね。ボクが一番重要視してるのはデバッグ方法です。 どうやってデバッグするか。まずその方法などを調べます。 LL系言語の方は 変数を printしたりする方が多いらしいのですがボクはあまり好きではないので PHPの場合は Xdebugを利用してステップ実行させたりしてます。 print させるのが嫌いな理由は一つです。 「コードを書かなくちゃいけない」 これに尽きます。なんでデバッグするのにコード書くんだよ!って思ってます。 前置きが長くなりましたが、素晴らしいプラグイ
2点の緯度・経度間の距離を求める方法として、「ヒュベニ(hubeny)の公式」というものがあります。 ネットで見ていくと色々でてくるんですが、公式を書いてあるサイトを見つけたので忘れないようにメモ。 ヒュベニの公式|カシミール3D D=sqrt((M*dP)*(M*dP)+(N*cos(P)*dR)*(N*cos(P)*dR)) D: 2点間の距離(m) P: 2点の平均緯度 dP: 2点の緯度差 dR: 2点の経度差 M: 子午線曲率半径 N: 卯酉線曲率半径 M=6334834/sqrt((1-0.006674*sin(P)*sin(P))^3) N=6377397/sqrt(1-0.006674*sin(P)*sin(P)) ただし、こちらの計算式は日本測地系用です。 GoogleMapsは世界測地系を使用していますので、そこから取得した緯度経度を使って計算すると、結果がずれる可能性
仕事でPHPを使う事があって、CentOS6の環境にPHPをインストールしたら $ php -v PHP 5.3.3 (cli) (built: May 7 2012 20:13:47) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies ...古いですね。 ということでバージョンを上げる作業にかかろうと思ったのですが、実はこの環境 幾つかシステムを入れるor既に入っていてPHPのバージョンを上げての動作確認がされていないものもある。 開発環境とはいえ、さすがに動かなくなっては不憫だし それだけの為にいくつもVirtualBoxを複製するのもナンセンスだと思ったので PHPのバージョン管理ツールを導入してみることにした。 有名所だとphpenv
WordPressでPHPの編集時に「Fatal error: Cannot redeclare …」と表示されて画面が真っ白(HTTP 500 エラー)になることがあります。ここでは、WordPressユーザーの目線から「Fatal error: Cannot redeclare …」が起きる理由や対処法を紹介していきます。 WordPressで「Fatal error: Cannot redeclare …」が起きる原因 「Fatal error: Cannot redeclare …」とは「関数が二重定義になっているため処理を停止する」という意味です。「関数の二重定義」の意味は後で説明するとして、WordPressでこのエラーが起きる原因の多くがfunctions.phpの修正ミスです。 たとえば、親テーマのfunctions.phpからすべてのコードをコピーして子テーマのfunct
PHPでファイルのMIMEタイプ取得に何を使う?explode? pathinfo? finfo_file? ファイルの拡張子からMIMEタイプを取得するいくつかのやり方をまとめました。 1つ目は、拡張子とMIMEタイプの配列を作って、ファイルの拡張子からMIMEタイプを取得する方法。 $fileName = 'image.jpg'; $mimeTypeList = array( 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jp2' => 'image/jp2', 'png' => 'image/png', 'gif' => 'image/gif', ..... ); $extension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION)); $mimeType = $mimeT
CSRF対策についてはこちらの記事が良いかもしれません。 [FuelPHP]画面リロードや不正なフォーム登録を防ぐ PHPには標準で $_SESSIONが用意されていますが、FuelPHPにもセッション管理用に Sessionクラスが用意されています。 セッションの書き込みには Session::set() を使います。 名前と内容のペアを渡すだけなので簡単です。 Session::set( 'name', 'hogehoge' ); Session::set( 'characters', array( 'haruka', 'chihaya', 'miki', 'yayoi' ) ); 2行目のように、オブジェクトを渡すこともできます。 連想配列や、多次元配列でも可能です。 取り出すには Session::get() を使います。 $name = Session::get( 'name'
MySQLのviewを使うことで実現してみた。 ここではSpotという、名前と説明と位置情報を持つデータを考えてみる。 scaffoldでは、geometryを指定 php oil g scaffold -f spots title:string description:string location:geometry できあがったmigrationファイルのup()関数内で \DBUtil::create_index('spots', 'location', 'sp_index', 'spatial'); \DB::query("create view spots_all_view as select id, title, description, ASTEXT(location) as location, created_at, updated_at from spots")->exe
iPhoneで撮影した縦画像(縦長の画像)をメールで送信し、その画像をサーバー上で処理すると横向きの画像で処理されてしまう事があります。 原因と解決方法は以下から。 iPhoneからメールで送信した画像が横向きになる原因 iPhoneを縦向き状態で縦画像を撮影した場合でも、iPhone内には横画像(横長の画像)として保存されています。 ではなぜiPhoneでは縦画像を問題なく表示できるかというと、画像データの中に含まれている『Exif』という画像情報に画像の向きが書きこまれているためです。 PHPで画像のExif情報を調べる方法 PHPで画像のExif情報を調べるにはexif_read_data()関数を使用します。 <?php $file_name = 'test.jpg'; $exif_datas = exif_read_data($file_name); //返り値として連想配列でE
phpで相対的な日時を得る方法のメモ。昨日明日、先月来月、次の日曜前の日曜、3分前、10分後など、現在日時を起点にしたあらゆるパターンの日時が得られる。 strtotime()はUnixタイムスタンプを返す組み込み関数。日時の文字列を渡すとそれに応じたUNIXタイムスタンプを返してくれる。 strtotime( "1999-12-31 23:59:59" );//946652399 で、strtotime()は日時以外に、様々な相対日時を指定可能になっている。strtotime( "yesterday" )とやると前日の午前0時0分0秒のUNIXタイムスタンプが返ってくる。これをdate()関数と組み合わせて使うことで、相対日時を簡単に取得することができる。 date( "Y-m-d H:i:s" , strtotime( "yesterday" ) );//ex 2011-10-27 0
最近社内でインフルエンザよりもFuelPHPが流行っています。 FuelPHPを使ってみて、感じたのは ※CakePHPしか使った事ないので、Cakeと比較してですが。 動作が速い。 ドキュメントが少ない。 フレームワークのコア部分の拡張が容易 構成がシンプルで見やすい ドキュメントが少ないのが難点ですが、使いやすいフレームワークだと思います。 そこで、最初に行っておくと開発する時に少しだけ(個人的にですが)利便性が向上する方法を3点挙げます。 なお、バージョンは、php5.3.3&FuelPHP1.7.1です。 1.開発環境と本番環境の設定の切り分け 2.コアクラスの拡張 3.共通ロジックの読み込み 1.開発環境と本番環境の設定の切り分け FuelPHPはデフォルトで本番環境と開発環境の接続先を切り替えが出来ます。 ただ、定数とかも開発環境と本番環境で分けたいことってありますよね
FuelphpでValidationクラスを使用し、エラーを出力した際にエラーメッセージを日本語で出力する方法をメモします。 最初の設定では英語で表示されるので。 エラーメッセージは日本語で出力することが多いと思うので、最初に設定してると実装しやすくなると思います。 また、エラーメッセージを個別に設定して、設定ファイルの内容を上書きする方法をメモします。 ■ 日本語のエラーメッセージを設定 設定ファイルで日本語のファイルを読み込むように設定します。 「fuel/app/config/config.php」の「language」の箇所を「ja」に変更します。 /** * Localization & internationalization settings */ 'language' => 'ja', // Default language 'language_fall
こんばんは.1000chです. 最近なにかと話を聞くvagrant.みなさん使っていますでしょうか. 自分は今,バイト先のチーム開発で利用しています. vagrantファイルが置いてあるディレクトリのフォルダはゲストマシンとホストマシンでの共有フォルダとして利用でき, ホスト側から普段の開発環境でコーディング,ゲスト側でサーバ起動,なんてことができてなかなか快適です. しかし今回,共有フォルダを利用しているが故の穴にはまってしまいましたので備忘録としてメモを残しておきます. 今回起こった現象 今回起こったのは,共有フォルダにおけるchmodの挙動に関する問題です. まずはこちらのコードをご覧ください. <?php // 中略 if( !file_exists($upload_dir)){ umask(0000); mkdir($upload_dir,0777); chmod($upload
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く