PHP

PHP Warning: PHP Startup: ******: Unable to initialize module

Linux(CentOS)上でPHPを実行すると、 PHP Warning: PHP Startup: ******: Unable to initialize module 〜 や PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/xxxxxxxx.so' 〜 といったエラーが出た。プログラムは問題な…

Amazonレビュー数ランキングを公開しました

ServersMan@VPS+CentOS PHP(Smarty),MySQLにて作成しました。 http://www.rockstar2007.com/amazon/index.php?hierarchy=root&root_genre_id=465610 AmazonのAPIから第4階層のカテゴリまでの全商品(和書のみ)を集めてきて、DB化し、レビューの数順に表示して…

パピヨン動画を公開しました

ServersMan@VPS+CentOS PHP(Smarty+オリジナルフレームワーク),MySQLにて作成しました。 http://www.rockstar2007.com/papillon/youtubeとニコニコ動画から独自に集めてきたパピヨンの動画をオリジナルのランク付け、カテゴリ分けをして公開しております。簡…

phpMyAdminにログイン出来なくなった

apacheのユーザを変更したところ、phpMyAdminにログイン出来なくなった(リロードを繰り返す)。apacheのユーザを元に戻したところ、 Existing configuration file (./config.inc.php) is not readable. とエラーが発生。 #chmod 705 /var/www/phpmyadmin/co…

ServersMan@VPS+CentOS PHP,MySQLの初期設定(Entryプラン)

CentOSのアップデート。 # yum update # cat /etc/redhat-release CentOS release 5.7 (Final) MySQLのインストール。 # yum install mysql # yum install mysql-server # yum install mysql-devel インストール後、MySQLの設定ファイルを編集→起動。 #vi /e…

PHPの文字列・配列・オブジェクト(インスタンス)の値渡し・参照渡しについて

PHP

setTest(…

pear install でエラーが発生

PHP

$ pear install HTTP pear.php.net is using a unsupported protocal - This should never happen. install failed というエラーが発生したので、 $ sudo rm -fR /usr/local/lib/php/.channels $ sudo pear update-channels とすると解決。上記コマンドはpea…

xhtmlの文字化けや表示エラーについて(PHP - simplateの場合)

PHPでhtmlファイルをxhtmlに変更したかったので、ヘッダーを下記のように変更したところ文字化けした。 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset='Shift_JIS'" /> ↓ <meta http-equiv="Content-Type" content="text/html; charset='Shift_JIS'" /> このサイトを見ると以下のような記述があった。LiveHTTPHeaders(Firefox 機能拡張)でHTTP ヘッダを表示する : 小粋空間 mb_out…</meta></meta>

pearパッケージのインストール

PHP

require_once "HTTP/Request.php"; と記述すると、以下のエラーが出た。 Failed opening required 'HTTP/Request.php' (include_path='.:/usr/local/lib/php: 下記コマンドで確認すると、「HTTP」というのがあるのに何故?? $ pear list 理由は、「HTTP/Req…

PHPのURLエンコードの仕組み

PHP

新人がはまっていたので、まとめてみた。form内は自動的にurlエンコードされるので、urlエンコード不要。下記のように「あああ」とそのまま書けばよい。 <form action="index.php" method="GET"> <input type="hidden" name="MT" value="あああ"/> </form> a タグのhref属性では下記のようにurlエンコードが必要。 <a href="〜?MT=%82%a0%82%a0%82%a0">xxx</a> どちらの場合も下記のようなurlが生成…

PHPのechoやprintで随時出力する方法

PHP

今更基本的なことですが、 while (!feof($cat_fp)) { usleep(100000); echo $cat_count; $cat_count++; if (50 < $cat_count) break; }PHPで上記のようなスクリプトがあると、実行して約5秒後に一気に$cat_countが出力されます。しかし、下記のようにob_flus…

CakePHPでドキュメントルートを変更できない場合の設定方法

PHP

「CakePHP1.2ガイドブック」のP342を参考にやってみたが、cssが反映されない・・。mod_rewriteは正しく設定できているのに。調査した結果、apacheのDocumentRoot配下(app/webroot/index.phpを読み込むファイルがある場所)にapp/webroot/css,files,imgを置く…

Linux(CentOS 5.3) にPHP(+pear)をインストール

今回はLAMP環境を構築してみました。例によってここ↓を参照。 LAMP環境の構築: サーバー初心者による自宅サーバー構築備忘録上記に記載されていなかったことを中心に書いていきます。まずは、php.iniの「display_errors を On にする」です。これがないとエ…

simplexmlで「:(コロン)」や「-(ハイフン)」などの特殊文字が入ったノードを処理する方法

PHP

<Response> <Header-a> <Args>ああ</Args> </Header-a> <Body> <booksTotalSearch:BooksTotalSearch> <count>14</count> ・ ・ 上記のようなxmlがあったとします。ここで、 $xml = simplexml_load_string( $xmltxt ); ($xmltxtには上記xmlが入っているものとする) とし、 $xml->Header-a とすると「なんか変な - があるよ!」と怒られてしまいます。こういう場合は</bookstotalsearch:bookstotalsearch></body></response>…

PHPのerror_log()の出力先は?

PHP

php -r "phpinfo();" php.iniの場所を調べる(例:/usr/local/lib/php.ini) php.iniの中の「error_log = 」を確認 (例:error_log = /tmp/php.log)1票ポチッと押して下さい♪このブログのランキングが少し上がります。

CakePHP1.2で独自のログ出力クラスを作成する方法

PHP

cake/libs/cake_log.phpをapp/configにコピーし、コピーしたcake_log.phpを独自の内容に上書き。 app/config/core.phpの一番上に「require_once('cake_log.php');」と追記するとこのコピーしたCakeLogクラスが使用されるようになります。 ※こうするとcake/ba…

PHPにSOAPをインストール

PHP

PHPを再コンパイル(リコンパイル)する必要があります。 $ php -i | grep configure で、他のオプションを確認して、/home/hoge/download/php-5.2.6 (※configureというファイルがある場所)で $ make distclean $ ./configure ↑で出てきたオプション全て --e…

URLパラメータ改行コードインジェクションへの対策

PHP

urlに改行コードが入っている場合: http://hoge/aaa?all%0dtest$bbb $chg = preg_replace("/\r|\n/","",$param); ※$paramにはurlパラメータが入っているものとする。PHPの場合。 で除去。1票ポチッと押して下さい♪このブログのランキングが少し上がります。

PHPで配列中の値を全て変換する方法

PHP

array_mapを用いて以下のようにするとよいです。 //カタカナを半角にする関数(配列に対応) function kana_change($arr) { if (is_array($arr)) { return array_map('kana_change',$arr); } else { $chg = mb_convert_kana($arr,'ask','EUC-JP'); return $c…

(IDをオートインクリメントしている場合に)直前に挿入したIDの値を取得する方法

PHPでの方法です。 $this->dbh = new PDO( 'mysql:dbname='.$this->dbName.';host='. $this->dbHost, $this->user, $this->pass ); $stmt = $this->dbh->exec(インサート文); $lastInsertId = $this->dbh->lastInsertId(); で$lastInsertId に直前に挿入した…

smartyやsimplateでtemplate(.tpl)ファイルの変更が反映されない

PHP

smartyやsimplateなどのテンプレートエンジンでテンプレートファイルを変更したにも関わらず変更が反映されない場合があります。それは下記のような場合です。 「「templates」ディレクトリ内の該当ファイルの更新日時より「templates_c」ディレクトリ内の該…

XAMPPを使ってみた

PHP

自宅サーバがクラッシュしました。「apt-get upgrade」でMySQL関連のパッケージをダウンロードしている最中にあやしげな挙動を示したので再起動すると、そのままOSが起動しなくなりました。ずいぶん古いノートPCでしたし、前々からあやしげな動きがあったの…

PHPのexec()をsystem()に変えたら最後の出力が2回出力された

PHP

下記のシェルスクリプトを [test.sh] echo 'aaa' echo 'bbb' 下記のように呼び出すと、下記の通りの出力が得られます。 [test1.php] echo exec('test.sh'); [出力結果] bbb で「bbb」だけでなく、「aaa」も出力したいと思いexec()をsystem()に変えました。す…