楽天APIを使って、携帯サイトを作る作業、問題の文字コード変換時に「?」が入ってしまう件、とりあえず解決した。

APIへのリクエスト自体は、utf-8のコードで行わないといけないが、これ自体はどうも問題はないみたいなので、携帯サイト用にキーワードをsift-jisに変換するときに問題が生じるらしい。

で、リプレイス関数を使って、スマーティーにデータを送る前に、キーワードを文字コード変換して、そのあとで「?」を除去することにしたらうまく行った。


$keywords_j = mb_convert_encoding($keywords,"SHIFT_JIS","auto");
$keywords_j = preg_replace('/\?/',"",$keywords_j);

とまあ、こんな感じやね。

しかしシフトーJISにすると、ファイルの先頭になぜ「?」がでるのかは、未だに不明。
アクアスでも拡張子を.phpにするとそう言うことが起こったし。

このへんが、ちゃんと習ったことのない日曜プログラマーの知識限界やね。

で、これ自体はOKなんだけれど、今度は別のアイデアを思いついてしまった。

PCサイトとケータイサイトの同時生成プログラムだ。

最初はPCサイトのディレクトリの一階層下に、モバイル用のディレクトリを作って、
そこに携帯サイト用のプログラムを入れて別々に更新しようと思ったのだけれど、これだと二度手間だ。

使うキーワードデータは同じだし、スマーティなどのコードも共通だから、うまくやれば一度に両方作れるはず、、、と考えたのだが、、、うーーーん、これって何か手はないかな?

問題は、現在の楽天のAPIの仕様では、PC用サイト用のリクエストと、モバイル用のリクエストが別になっていることだ。

PCサイトとモバイルサイトを同時生成するには、同じリクエストをPC用とモバイル用の2回しないといけないってコト。

リクエストのリターン(レスポンスxml)に、PC用とモバイル用のアフィリタグを入れてくれれば良さそうなモノなんだけれど、なぜか別々にリクエストしなければならない仕様になっている。

やっぱ別に作って連動させるとか、そう言う仕組みでないとダメかな?
もう少し考えてみよう