Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
38 / 114 ツリー <前へ | 次へ>

〔699〕新検索システム検討中 Hidemi Oya (07/08/20 15:19)

〔706〕PHP で SQLite3 を使う(3) Hidemi Oya (07/08/28 22:37)
〔709〕嵌ってしまったorz Hidemi Oya (07/09/02 14:46)
〔710〕嵌ってしまった(2) Hidemi Oya (07/09/02 21:01)

〔706〕PHP で SQLite3 を使う(3)
 Hidemi Oya WEB  (07/08/28 22:37)

引用なし
   >とりあえず新しいサーバで無料アカウントを取得して、こちらが使えそうなら XREA+ の利用権を新サーバに移せるようです。
> 当面、こいを検討してみることにします。
 モジュール版 PHP が 5.2.3 のサーバで試してみました。PDO で SQLite3 が問題なく使え、regexp 演算子も簡単に実装できます。
 が、numRows は SELECT 文では使えず、sqlite_field_name に相当するメソッドも無いので、別途実装する必要があります。PDO を継承した拡張クラスを作成するのが良さそう…。
 検索速度は、PHP5 + PDO だとネイティブ関数の sqlite3_* にはやや劣る感じがします。明らかに体感できるほどの差ではないので、使いやすさも考えると、PDO の方が有利です。
 また、PHP5 にはさすがに sqlite3_* 関数が存在しませんでしたが、CGI 版の PHP 4.4.7 には実装されてました。

 PHP5 + PDO, PHP4 + sqlite3_*, perl + DBI のいずれで行くかまだ決めかねているところはありますが、どれでも使えるという面では、やはり新サーバに移行するのが正解でしょうね。で、新サーバに移行するなら、PHP5 + PDO が最右翼ではあります。

 サーバ移行にあたって、現行サーバのディスク使用量を調べてみたら、250MB 使ってました。無料サーバは 50MB なので、これを全部移行するのは無理ですね。でも、とりあえず評価中の CMS 2つがかなり容量を食っていたので、いらないものを全部削除したら、34MB にまで削減できてしまいました(全然使ってないなあ^^;)。金曜か土曜の深夜に、移行することにします。

〔709〕嵌ってしまったorz
 Hidemi Oya WEB  (07/09/02 14:46)

引用なし
   >金曜か土曜の深夜に、移行することにします。
 土曜日の深夜に s70 から s301 に移行しました。
 XREA のサーバ間コピーを使ってデータは簡単に移せました。サーバ間コピーでは、/public_html 以下のディレクトリのみコピーするのが良さそうです。/Maildir にあるメールボックスをコピーしてもダメで、削除してメール設定を一からやり直しました。

 サーバを移行して、問題が2つ発生。ひとつは当サイトのトップページのトピックコラムが文字化けすること、もうひとつは CoolON Project の BBS が表示されなくなったことです。

 トピックコラムは MySQL にデータを保存して、PHP で読み出して表示しています。最初は PHP4 から PHP5 に変わったことで各種 encoding の設定も変わったのかと思ったんですが、いろいろ確認しても問題なしで、いろいろ試しても変化なし。CGI 版 PHP4 で実行しても同じなので、PHP の問題ではないと断定。
 じゃあ MySQL4 から MySQL5 に変わったのが原因かと、phpMyAdmin でデータベースの内容や各種 encoding を確認しても問題なし。しかも、同じデータベース、同じ encoding で使っている薬検DB検索 perl 版 3.0.RC4 は問題なく動作しています。てえことは、MySQL5 の問題でもなさそう。
 ここまで数時間を費やして、最後に残ったのが、PHP と MySQL5 のインターフェースの問題です。PHP と MySQL5 の各種 encoding を無視して、勝手な encoding でやりとりをしてるのではないかと…。今まで使っていた mysql_* 関数ではインターフェースの encoding が不明なので、mysqli_* で書き直してみたところ、インターフェースが latin1 になってました。mysqli_set_charset でようやく解決できました。
 でも、mb_* 系関数の encoding で UTF-8N は 'UTF-8'、mysqli_set_charset では 'utf8' という違いがあって、ここでもちょっと嵌っちゃったんですけどね(^_^;)。

 CoolON Project の BBS はこれから原因究明ですが、全く同じ掲示板システム、全く同じ PHP スクリプトによるメニューの FAQ と Report は表示されているので、こいつはかなり手強そうです。さて、どうしたものか…。

〔710〕嵌ってしまった(2)
 Hidemi Oya WEB  (07/09/02 21:01)

引用なし
   > CoolON Project の BBS はこれから原因究明ですが、全く同じ掲示板システム、全く同じ PHP スクリプトによるメニューの FAQ と Report は表示されているので、こいつはかなり手強そうです。さて、どうしたものか…。
 こちらは、PHP しか使っていないので(掲示板システムは perl)、PHP4 と PHP5 の違いに起因するものだろうとは思ってました。で、Support メニューの PHP スクリプトを CGI 版 PHP4 で動かしてみたら、問題なく動作しました。
 いろいろ調べてみたところ、preg_replace の挙動が微妙に違うようです。とりあえず mb_ereg_replace に置き換えて OK となりました。どこがどのように違うのかまでは確認しませんでしたが、'm' モディファイアの挙動がクサイです。

 ついでに、英語版 CoolON Project は eXcite の自動翻訳を使ってたんですが、これの URL が微妙に変わってたりして、以前のように動作しなくなっていることに気づいたので、これも修正しました。
 なんだかんだで、やっぱり数時間かかってしまいました。

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
38 / 114 ツリー <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.