5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

タグ: PHP

  • PHP5にサーバー移行

    契約しているレンタルサーバー会社から、PHP4からPHP5に移行するという連絡がありました。PHP4がサポート停止になる措置です。

    おそらく何もしなくても、今動いているサイトやブログ(ここのブログ)は動くと思いますが、当日は注意しておかなくてはいけません。

    しかし、ようやくですね。PHP4に対応しているということで、CakePHPを推奨してきましたが、それも関係なくなります。だけど、いまさらCakePHPにいどっぷり浸かっていますので、他のフレームワークに行くのも辛いところです。

  • capictchaの画像のサイト名を消してしまう話し

    コメントの入力でスパムの標的にならないように、画像にぐにゃっとした文字列を表示して、これを入力させるcapictchaというものがあります。

    お客様の要望で、下のサイト名を消すように言われました。capictchaはKCAPTCHAというライブラリで生成しています。KCAPTCHAの情報を漁ってみましたがドキュメントが見つかりません。

    仕方ないのでKCAPTCHAのソースを眺めていたら、kcaptcha_config.phpで何か設定していることがわかりました。kcaptcha_config.phpのファイルを見たら、何のことはないコメントに

    # show credits
    $show_credits = false; # set to false to remove credits line. Credits adds 12 pixels to image height
    // $credits = 'www.captcha.ru'; # if empty, HTTP_HOST will be shown

    とあって、

    $show_credits = true;

    とするだけ。その他、画像の大きさなどが設定できるようです。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • WordPressを2.6にアップデートした話し

    このブログで利用しているWordPressが新しく2.6がリリースされましたので、アップデートしてみました。

    まずは、念のためのバックアップです。MySQLのDBをphpMyAdminでバックしてしまいます。今回は、丸ごとWordPressのDBをバックアップします。

    次にプログラムのバックアップします。こちらは、フォルダをまるごとテンポラリのディレクトリにコピーしてしまいます。

    これで、何かあったら元に戻せます。

    WordPressのサイトから2.6をダウンロードしてして、サイトにFTPでアップします。ZIPファイルでしたので、unzipコマンドで解凍し、所定のディレクトリにコピーします。

    あとは、/wp-admin/upgrade.php を動かして、DBをアップデートします。

    正常に動作していることを確認して完了。簡単でしょ??

    しかし、どこが変わったかは、あまり実感はわかりましません。バグFIXしているのでしょうかね。 

    著:久保田涼子, 著:西原礼奈, 著:阿諏訪聡美
    ¥2,399 (2025/04/30 10:35時点 | Amazon調べ)

    なんやかんやでWordPressのサイト構築で躓くのは、PHPのプログラミングなのでした。

    追記

    WordPressで記事を編集していて、間違えて違うページに行っても、書いた内容は自動保存しているのですね。あわてものにはいいかもしれない。

  • PHPのfgetcsv()は使えない?という話し

    PHPの関数で用意されているfgetcsv()は、CSVファイルを一行読み込んで、各項目を配列で返してくれます。こんな感じ。

    $handle = @fopen("testtest.csv", "r");
    $buffer = fgetcsv($handle, 4096);

    ただし、CSVファイルに2バイトのデータが含まれていたら、うまく切り分けてくれない。PHPの内部コードはUTF-8で、CSVファイルがシフトJISなら、変なところで切ってくれる。

    仕方ないので、手っ取り早く

    $handle = @fopen("testtest.csv", "r");
    $buffer = split(",", fgets($handle, 4096));

    のように変更してあげる。CSVファイルはこちらでプログラムで生成されているので、途中にコンマが紛れてこないだろうということで、とりあえずOKとしておきます。なんだが美しくないなあー。これだと完全なCSVファイルの処理をしていないので、また後で考えなければいけないか・・・。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • OpenPNE拡張開発 - 悲しい結末

    現在開発中のOpenPNEのアプリケーションの拡張案件。作業していた中の悲しい結末。

    今回の拡張は、3,500件のデータをOpenPNE内のテーブルにインポートするもの。このデータは、追加・更新・削除のデータを含んでいて、レコードごとにそれぞれの処理を行います。つまり、バッチ処理です。もちろんデータの整合性チェックを行って、外部のWebサービスの連携(これがとても重い!)も行います。

    しかし、100件辺りで、Apacheを異常終了してしまう。ローカルPC上でXAMPPでテストしているのが問題? でも、本番で動かなくなるのも問題ですので。ローカルPCで解決することに。

    まずは、SQLの見直し、なるべくシンプルにということでSQLを書き直しましたが、解決にならず。

    メモリの使い方が悪いのかと重い、処理を見直してきちんとメモリ解放するようにしました。しかし、これも解決にならず。

    インポート結果の出力を制限するようにしましたが、こちらも解決にならず。

    いよいよ、最後の手段。最初はDBへのアクセスは、まともにOpenPNEのライブラリを使っていました。これをMySQLの低レベルの関数でアクセスするように変更。つまり、画面周りだけをOpenPNEで記述して、あとはガリガリPHPのMySQL関数で書きます。PEARも使わずに。

    これで、問題なく動くようになりました。結局は最初の2週間の成果はゴミ箱へ。早々に諦めて次の手段に移ることも大事です。

    このページは xfy Blog Editor を利用して作成されました。

  • 有用なPHPライブラリを使いたいのですが・・・ダメですか?という話し

    最近経験した、人がプロジェクトを後退させていくことの例。

    PHPでプログラムを使っているとPEARやPECLなどのライブラリを知らずして使っています。こんな機能があればということで探すと大抵は見つかります。

    先日のプロジェクトの中で、アップロードするファイルの種類を判定する機能がお客様から要望されました。単純にPECL 拡張モジュール Fileinfoで実現すればいいかとテストプログラムを作成しました。これをプロジェクトを一次受けしている会社に提案。しかし、その会社のサーバー管理者から却下となりました。

    理由は、サーバーに余計なライブラリをインストールしたくない(面倒のだけ??)、もしもの場合誰が保証するか(もしものことは起こるか??)、ということだそうです。いくら説得して説明してもダメ。

    サーバー管理者からは、同じ機能を新しく作ればいいの一点張り。結局の所は、お客様に説明して、この機能はなしとなりました。

    ライブラリの活用に関しては、この記事を参照のこと。

    このページは xfy Blog Editor を利用して作成されました。

    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • ミツバツツジ(画像のアップテスト)

    先日、富士五湖の本栖湖にキャンプに行った帰りに立ち寄った、なるさわ道の駅でツツジ祭りをやっていました。そのときのミツバツツジの写真です。

    RICOH GR DIGITAL

    現在ブログの編集で使っているxfy Blog Editorの画像の加工拡張機能ImageEasyのテストです。画像ファイルをドラッグ&ドロップして、画像の大きさもスライダーで直感的に変更できるので、画像のアップはとても簡単です。

    このページは xfy Blog Editor を利用して作成されました。

  • xfy Blog Editor の投稿日時がおかしい

    xfy Blog Editor を使って、このブログを書いていますが、どうもマシンによって投稿日時が時差を無視して+9時間で投稿されます。

    すべてのマシンでこの現象が発生しないところがやっかいなところです。発生しているのは、WindowsXPのマシンです。xfy Blog Editorのコミュニティフォーラムによると、Vistaで発生するといった報告がありましたが、こちらはVistaではOKです。とりあえずxfy Blog Editorのコミュニティフォーラムに報告をあげておきました。

    まあ、手で投稿日時を修正すればいいのですが、ちょっと面倒ですね。

    でもXOOPSのWordPressモジュールから普通のWordPressに変えましたが、xfy Blog Editorはこの件以外は快調です。エントリ再取得でのXMLエラーが出なくなりました。xfy Blog Editorはお勧めです。

    このページは xfy Blog Editor を利用して作成されました。

  • ExcelファイルをPHPで生成してHTTPSでダウンロードするときの注意の話し

    ExcelファイルをPHPで生成するには、PEARのSpreadsheet_Excel_Writerを使うと簡単にできます。

    生成したPHPファイルをダウンロードするには、

    header("Content-Type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=test.xls");

    でヘッダを出力してから、Excelファイルの本体をシフトJISに変換してecho()なんかで出力すればいいのですが、httpsでSSLを使うとダウンロードできなくなります。ファイルの保存ダイアログも表示してきません。

    いろいろ調べると、IEの問題らしい。やはり、先人の知恵がありました。

    以下のように続けてヘッダを出力してあげれば解決です。

    header("Cache-Control: public");
    header("Pragma: public");
    著:山田祥寛
    ¥3,366 (2025/04/25 12:34時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/04/25 12:34時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/04/25 12:34時点 | Amazon調べ)
  • 今年も花粉症の季節になりました。その対策。

    花粉症の人には嫌な季節になりました。私も正真正銘の花粉症です。その対策です。

    今年も鼻の中の粘膜を焼く手術を受けてきました。去年に引き続き2回目です。去年はこれで調子よかったので、花粉の量が多いと言われる今年はどうなるか??

    手術が終わった後、先生に

    「カスが出ますので、また来てくださいね。」

    と言われる。そのときは、???でしたが、今日になって、本当にすごいものが鼻から出ました。これで本当にスッキリ。

    今のところ、鼻水に悩ませられるということはありません。最後まで乗り切れるか。