PHP

PHPで文字列を一文字ずつ処理する

PHP

業務だとほとんどないが競技プログラミングとかしてると、文字列を一文字ずつ処理したい時が結構ある。 やり方は色々あると思うが、個人的にしっくりくる方法を二つ。方法1

symfony propel:buildでのinsertエラー

symfony1.4とmysql5.1の環境でsymfony propel:build-allをしたらエラーで引っかかった SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corres ponds to your MySQL server version …

CentOSでmemcachedを使ってみる

# リポジストリ追加 wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm# memchacheインストール yum -y --enablerepo=rpmforge install memcached# …

peclを使うにはpearがいる

PHP

初めてpeclを使おうと思ったらpearが入ってないとダメらしい yum -y install php-devel httpd-devel php-pear pear あれ?symfonyのインストールとかで使ってるのになんで入ってないんだ?w

symfony1.2でsqliteを使う際のconfig周りの設定

SQLITE用の設定方法 若干詰まったのでメモ sqliteのdbファイルはdataディレクトリに置くdatabase.yml all: propel: class: sfPropelDatabase param: phptype: sqlite database: %SF_DATA_DIR%/hogehoge.db encoding: utf8 dsn: sqlite:///home/hogehoge/symf…

symfony(MySQL)で前後の記事(次のレコード)を取得する

ブログとかでよくあるような「前の記事」「次の記事」リンクを表示しようと思ってちょっと悩んだ。記事リストのページで次のリストを取るような場合は普通にページング処理をすればいいだけなので簡単だが、MySQLで「前のレコード」「次のレコード」を取るよ…

print_rとvar_dumpの違い

PHP

配列の話し $array = array("田村ゆかり"=>"Little Wish", "水城奈々"=>"SECRET AMBITION", "堀江由衣"=>"YAHHO!!", 2=>"あいうえお", 120); var_dump($array); print_r($array); 出力結果(ソース) array(5) { ["田村ゆかり"]=> string(11) "Little Wish" ["…

basic認証時にパスワードを取得する方法がPHPにあるらしい

PHP

PHP技術者認定・上級模擬問題 をやっていて知ったのだが、$_SERVER['PHP_AUTH_PW']なるグローバル変数で取得できるらしい。 やってみた index.php "; echo "ID:".$_SERVER['PHP_AUTH_USER']."<br>"; echo "パス:".$_SERVER['PHP_AUTH_PW']; ?>.htpasswd kunikiya…

symfony propel:build-model がうまくいかない

symfony1.2でpropel:build-modelをしたらエラーが出た PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 41 bytes) in /usr/share/pear/symfony/plugins/sfPropelPlugin/lib/vendor/propel-generator/classes/propel/…

CoreServerにsymfony1.4をインストールした

CoreServerが安い割に機能豊富で使っていて、symfonyが入ってはいるんだが バージョンが1.0と言う何とも古い感じなのでpearで入れ直せないかなーと色々やってみた。■失敗した方法1 苦難が多すぎて忘れてしまった・・・ ■失敗した方法2 pearは既に入ってる…

携帯振り分けを行うシンプルなphpライブラリっぽいものを書いてみる

PHP

phpで携帯用の振り分けをちょっと行いたい時に丁度いいライブラリが意外とないPEARのNet_UserAgent_Mobileとかが有名ではあるが、高機能過ぎるのと外部ライブラリで依存度が上がると保守がめんどくさいので簡単に書いてみた 使い方の例 $clientCheck = new c…

sfSmartyPluginでSmartyフィルタを設定する

sfSmartyPluginでSmartyフィルタを設定した時のメモsfSmartyPluginは名前の通りsymfonyでテンプレートエンジンSmartyを使うプラグインである sfSmartyPlugin(http://www.symfony-project.org/plugins/sfSmartyPlugin) Smartyフィルタ自体の説明はアシアル…

symfony1.2から1.4に軽くアップデートしてみる時にぶつかったこと

最近サーバリソースが足りなくなったので新たに構築したのだが、開発環境がsymfony1.2でサーバがsymfony1.4である。さあ、どうなる?? 初期状態だと二か所しか問題にならなかったw app/アプリケーション/config/security.yml1.2だと is_secure: off1.4だと…

symfonyの機能をフレームワーク外から使う

最近はsymfonyで最初から構築することが多いが、オレオレフレームワークや素のPHPで構築されたシステムを弄ることも多い。そういった時にsymfonyのライブラリだったり、ORマッパを使いたい場合。 既存のPHPファイルの先頭にこの一行を追加するだけでsymfony…

symfonyでメタタグが表示されない

つい最近symfonyで開発したサイトでメタタグがちゃんと表示されないことがあった 実際の表示はこんな感じ <meta name="title" content="" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="language" content="ja" /> <meta name="robots" content="index, follow" /> <title></title>メタタグの内容はview.ymlに記述している しばらく試行錯誤していて気付…</meta></meta></meta></meta></meta>

CakePHP1.3でInternal Server Error

新しく参加するプロジェクトがCakePHPの1.3らしいので勉強ががてら触ってみた 駄菓子菓子とりあえずファイルを置いてみたらInternal Server Errorな件 どうやらmod_rewriteの設定が怪しいので.htaccessを書き換える cakeルートディレクトリ/.htaccess <IfModule mod_rewrite.c> Rewri</ifmodule>…

エラー Fatal error: Cannot redeclare

開発用サーバにデプロイしてたら Fatal error: Cannot redeclareこんなエラーが出たhttp://questionlife.blog88.fc2.com/blog-entry-1.html関数名が重複してるってことらしい どうやら昨日SVNで衝突してコードをマージした時に、重複してコードを書いてしま…

symfonyでバッチ処理

symfonyで開発している場合普通のアクションをcronでバッチ処理しようとしてもうまくいかないので、taskとしてプログラムを作成する必要がある。 symfony generate:task 任意のネームスペース名:任意のバッチ名このコマンドでsymfonyルート/lib/task/に「ネ…

symfony1.4でpropelを使う方法

現在メインの環境はsymfony1.2だがいい加減古い環境だし、1.3以降はpropelがPDOを採用していて早くなっているらしいので、新しい開発環境を作る際に以降してみることにした。 だがしかし… There are no tasks defined in the "propel" namespace.propelが使…

つぶやき解析サービスKeyAnaリリースしました

Twitterアカウントでログインするとつぶやきを解析して良くつぶやいているキーワードのランキングを教えてくれるサービス「KeyAna」をリリースしました。KeyAna 既に似たようなサービスはいっぱいありそうだけど、TwitterAPIと形態素解析の勉強用に作ってみ…

mb_convert_kanaで半角から全角に変換すると文字化けする

PHP

mb_convert_kanaで半角から全角に変換しようとしたら文字化けするので調べてみた。 どうやら文字コードを指定してやらないと誤変換を起こすようですね。 $str = "abc"; $str = mb_convert_kana($str, 'ASKV'); echo $str;実行結果 abcアイ AB 参考 PHP…

phpMyAdminが不正にアクセスされないようにする

方法1. IPで制限する自宅や会社のネット回線が固定IPで、そこからしかアクセスしない場合に有効です。 <Location phpMyAdminをインストールしたディレクトリ> Order deny,allow Deny from all Allow from 127.0.0.1 Allow from 192.168.1 Allow from 自宅や会社のIPアドレス </Location>方法2. パーミッションを変更する…

phpMyAdminで特定のデータベースだけアクセスするようにする

phpMyAdminを使っている時に特定のデータベースだけ操作できるユーザーが欲しい時があります。 以下のSQL文を発行すると「データベース名」だけにアクセスする権限を持ったユーザー「ユーザー名」ができます。 GRANT SELECT ON データベース名.* TO ユーザー…

phpMyAdminが文字化けする

PHP+MySQLで開発の際は文字コードをUTF-8に統一しているのですが、 何故かphpMyAdminで日本語が化ける…ネットで調べていくつかやってみました。因みに環境はこちら CeontOS5.6 PHP5.1.6 MySQL5.0.77 phpMyAdmin2.11.11.3 対策1. PHPの内部文字コード設定 p…

xreaでPHPをcronで定期的に実行させる時

自分のサーバだと直接PHPをcronで起動させることもできるけど、 xrea、coreserverなんかだとできないので、シェルスクリプトを噛ます。 シェルでPHPのファイルがあるディレクトリに移動しておくと、 includeしているファイルの相対パス等もずれないから 専用…

携帯サイトでhttpとhttpsのセッションを引き継ぐ

PHP

携帯用のECサイトを開発しているのでが、 一部のページがSSLだと問題なことに気付いた。 トップページ(http) ↓ カートページ(https) ↓ 商品ページ(http) 等と移動した時、http通信の時とhttps通信の時でセッション的には 別サイトの扱いになってしまい、別…