カテゴリー

月別過去記事

みるくぜりー内 検索
Loading

モバイルアドセンスのphpを書き換えてみた

モバイル向けgoogleアドセンスのソースがあまりにひどかったので
やだなーとおもってたところperlのソースをみたら別の取得方法が分かったので
ちゃちゃっと書き換えてみました。
元のソースのどこがひどいと思ったかというと大きく二つ。

・includeで読み込むファイルが外部サーバーにあること。(HTTP経由怖い!)
・↑のせいでレンサバの設定次第では動かないかもしれないこと。(ヘテムルではうごいた!)
・グローバル変数をつかってたこと。(便利だけど個人的に嫌い!)


書きかえたソースがあんまり綺麗じゃないのは急いでたからということで
見逃してください!

★必要なもの
・PEARのHTTP_Request
・phpの知識

ソースは記事の続きにて。

IE+SSLでファイルダウンロードが出来ない

IEにてSSL経由でCSVをダウンロードさせようとすると反応がないとの
報告が来たので修正しないといけなくなり色々調査。

報告を教えてくれた人からコレつかえないかな?ともらった資料がコチラ。

Internet Explorer が SSL 経由によるファイルのダウンロードで "No-Cache" ヘッダーを処理できない
MS04-004 をインストールする前に Internet Explorer 6 SP1 の no-cache ディレクティブを上書きするには、次の手順を実行します。
1. レジストリ エディタを起動します。

去年まで動いてたシステムなのにレジストリ弄るなんてもってのほかです。


Internet Explorer で SSL Web サイトの Office 文書を開けない
状況
この動作は仕様です。

うっ(´;ω;`)


で、私が見つけた資料はこれ。

Content-Disposition: attachemnt と Cache-Control: no-cache によるダウンロードの問題

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
…だったらなおしてください(´Д⊂

で、結局分かったphpでの回避方法は↓を書くだけ。
header("Cache-Control:private");
header("Pragma:private");

または
header("Cache-Control:");
header("Pragma:");


とりあえずCache-ControlとPragmaにno-cacheが入ってなければいいみたいなので
こういうコードです。privateと空白以外でもっといい設定があるのかどうかまで
めんどくさかったので調べてません。

今日は真剣に「みんなFirefox使えばいいのに!」と思った。


[php]配列の文字コードを全部かえる関数

もっといいやり方はありそうだけど…思いつかなかったので作ってみました。
#再帰処理なんて書いたの学校卒業以来じゃないかしら(/ω\)
2007/02/22 追記
もっといいやり方教えてもらえましたヽ(´ー`)ノ
mb_convert_variables($to, $from, $params);
ソースはすっきりしたけど、コメントにも書いたとおりなんか気持ち悪いです(苦笑)


使い方はいつものmb_convert_encodingみたく引数を渡すだけ。
一個目のところに配列渡してもエラー吐いたり、崩したりせずに
やってくれるよというただそれだけ。
またどこかで使う気がするのでとりあえずここに書くことにしました。

[pear]Crypt_Blowfishの罠にはまる(´・ω・`)

テキストを復号可能な形で暗号化したい!
でも、phpの標準関数を利用することができないので何かいいものないかしら?
ということでしらべてみたらCrypt_Blowfishという便利なpearがあることが判明。

smartyってほんとべんりなのです。

一個前の記事でごちゃごちゃと書いてますがシンプルに言うと
smartyのfetchは超便利!ってことを伝えたかったんです。

携帯サイトがさくっとできるだけでなく
phpから送るメールの本文とかもsmartyのテンプレート化しておくと
文言の変更も楽に終わります。
smartyだからといってhtmlのテンプレートを入れるだけじゃない
ってことに気がついたのは自分の中ではすごい発見でした(笑)

他にもcronつかって裏っかわにてhtmlを自動生成する際に
同じデータを使ってhtmlを複数作成したい!と思いそこでもfetchを利用してます。
・まず必要なデータを取ってくる。
・1つ目のテンプレでfetchの結果をいったん変数にとってファイル処理関数使って書き出し。
・2つ目のテンプレでfetchの結果をいったん変数にとってファイル処理関数使って書き出し。(以下テンプレの数だけ行う。)
普通ならテンプレの数だけデータ取得処理を走らせるところですが
fetchをつかうことで1回で済ませてます。

テンプレエンジン使うとファイル数増えるからめんどいやんという人もいるかもしれませんが
使いこなしてみると結構楽できるものなのです(/ω\)


PEAR::DBメモ

いっつも忘れてココに調べに来るのでメモも兼ねて記事にしておきます。

DSN データソース名(The Data Source Name)

普通にココの説明を見ると
phptype(dbsyntax)://username:password@protocol+hostspec/database?option=value

こういう文を書かないとダメっぽく見えるんですが
実は連想配列でもOKだったりするんですよね。
連想配列の名前は↓にある「phptype」とかの部分。
PEAR::DBにより、データベースに接続するには、有効な DSN - data source name を作成する必要があります。 このDSNは、以下の要素からなります。

phptype: PHP で使用されるデータベースバックエンドです。 (すなわち mysql や odbc 等)
dbsyntax: SQL構文等のデータベース関連構文です。 phptypeとしてODBCを使用する場合、 ODBCドライバが接続しているDBMSタイプにこれをセットしてください。 例: access・ db2・mssql・ navision・solid・その他
protocol: 使用する通信プロトコルです。 (すなわち、tcp・unix 等)
hostspec: ホストの指定です。 (hostname[:port])
database: DBMSサーバ上のデータベース使用方法です。
username: ログイン用ユーザ名です。
password: ログイン用のパスワードです。
proto_opts: protocolで使用されるオプションです。


Smartyでfor文みたいな動きをさせるには

php+Smartyで以下のようなforを実現したい時のテンプレートの書き方をメモ。
マニュアル見る限りではできないものと思われがちなんだけど実はできるという(/ω\)
#いつも処理をしようと思うたびにぐぐってるので・・・。

php版でこれを・・・
for($i=0;$i<10;$i++){
    echo "$i<br>";
}


Smarty版
{section name=cnt loop=10}
{$smarty.section.cnt.iteration-1}<br>
{/section}
//※-1するのがポイント



とか

{section name=cnt loop=10}
{$smarty.section.cnt.index}<br>
{/section}


または

{section name=cnt start=0 loop=10}
{$smarty.section.cnt.index}<br>
{/section}
//※startを設定することで0から開始できる。一番for文っぽい動作かも。


| 1/1PAGES |