php、cgi作成メモ
2.Amazonアフィリエイト タグ改造
今回はAmazonアフィリエイト タグの改造です。
アマゾンの下記のようなAmazonライブラリリンクをよく使っているのですが、サイトのデザインとの相性とかもありデザインが気に入らなかったりします。
とくに、横幅とかがサイトのデザインとあわないなど。
そこで、改造です。
タグをみるとわかるように、これはiframeになっています。で、実際にアクセスされるページは
こちらにアクセスしても同じ表示がされるはずです(もともとアクセスするたびに商品がかわるリンクなので商品は若干かわりますが)。
さらに、こちらのページだとソースまでみることができます。
つまり、このソースをいじることができれば、アフィリエイトタグの改造ができるという訳です。
で、実際にはどうするかというと、
1,元となるアフィリエイトのタグを取得します。(iframeの)
2,そこに含まれる実際に表示されるページのURLを取得します。
3,2、で取得したURLにアクセスしそのページをGETして同じページを表示するようなCGIを作成。
4,3、のCGIの中でソースの置換などの改造を行う。
5,iframe等で3、のCGIにアクセスすれば4で改造された内容が表示されます。
簡単ですね♪
ただし、アマゾンのロゴやプライバシー云々のリンクをいじると確実に規約違反となるのでやめましょう。
また、3、においてスタイルシートのファイルも適当なフォルダにコピーしておかないとスタイルが崩れて同じように表示されないので注意してください。
2010年12月02日
Mysql使用時の文字化け
最近、CGIのプログラムはperlやphpを作るときにはもっぱらutf-8を使うんですが(楽天とかamazonとかのAPIから帰ってくるデータがutf-8なため)、 自分のサイトでMysqlを使ってプログラムを作ると、データの受け渡しで何故か文字化けが発生します。もちろん、データベース側の文字コードもutf-8に設定。
結論から言うと
データ受け渡しのsqlクエリーを発行する前に
SET NAMES utf8
SET CHARACTER SET utf8
(どちらか片方でもいいらしい)のクエリーをmysqlに送ればデータがデータベースの内部エンコードに関わらず設定した文字コードで帰ってくるらしいです。 便利ですね。
ただし、perlの場合はそれ以前の問題として、ソースの文字コード、内部文字コード、出力する際の文字コードなどの設定を正しく行ってください。
個人的にはそういう面ではphpの方が使いやすい気がします。
2010年11月14日