WEBサイトのテスト等で簡単にHTMLを書いていたときに日本語のフォントが少々おかしくなってしまいました。読めないわけでもありませんし、テストだから別にいいやとも思いましたが、なんとも気持ちが悪い状態でした。エンコードはUTF-8です。最近よく使うようになったOpera(11.51)で起きました。Firefox、Chrome、IEでは問題ないようです。文字コードを指示しても変化はありませんでした。 続きを読む Operaで日本語のフォントが輸入雑貨の説明書のようになってしまった。 (HTML)
Tomo のすべての投稿
バックアップ雑感 (2) (windows7 バックアップ)
Windows7の前、windows xpを使っていたときは、RealSyncの他に、起動ドライブのイメージバックアップのため、Acronis True Image Home 2009でイメージバックアップを取っていたこともありました。バックアップは外付けHDDに保存していました。実際に救われたこともありましたし、HDDを大容量のものに交換するときなどはウィザードに従って簡単に交換することができました。
バックアップ雑感 (1) (windows7 バックアップ)
ファイルのバックアップには長らくRealSyncを使用してきました。Windows2000のころからだと思うので、かなり長い間お世話になっていました。しかしながら最終更新が2003年と、すでに8年が経過しています。数少ない欠点をあげれば、ファイル名にunicodeが入っているとエラーになること、スケジュールができないこと(何分ごと、といった設定はできる)、リネームされたファイルがある場合、最初に削除をし、そのあとあらためてコピーをとるといった点です。残念ながらこれから更新もあるとも思えませんので、なにかよいソフトがあればと思い、検討してみることにしました。(連載)
続きを読む バックアップ雑感 (1) (windows7 バックアップ)
整数かどうか s_numeric,is_int,ctype_digit (PHP)
以前数値かどうか?というエントリで記述したようにPHPでの数値かどうかの判定にはis_intが使えると書きました。他にもctype_digitという関数があるのですが、この関数は”文字列”が”数字”かどうかを判定するので、string型で用いるのが前提になっています。つまり、float型はもちろん、int型もすべてfalseと判断されます。
いくつかの例でテストした結果を一覧表にしてみました。(PHPのバージョンは5.2.5)
続きを読む 整数かどうか s_numeric,is_int,ctype_digit (PHP)
数値を3桁ごとにカンマ区切り (PHP)
PHPで出力時にカンマで区切るときに一番単純なのは、number_format()を使うことです。引数は元の数値のみの単純構造となっています。
$i = 12345; print number_format($i);
結果は12,345となります。
最新の記事にだけAdsense広告を表示する (WordPress)
Google Adsenseの広告ユニットは1ページあたり3つまでと決められています。このサイトのように、記事を最新のものから複数個表示している場合、最初のいくつかの記事の下部にだけ広告を表示しています。
方法はこのサイトを参考にしました。
まず、ダッシュボードから、メインインデックスのテンプレート(index.php)を選択します。
その中で、記事を繰り返し表示している部分を探します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
このようになっているところを以下のように変更しました。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $post_counter++;?>
そして、広告ユニットを入れたい場所を探します。
<?php if ($post_counter <= 1) { print <<<EOD <script type .... .... </script> EOD;
そこに上記のように、取得したコードを print <<<EODとEOD;の間に入れて、完成です。(EOD;の前にはスペース等を入れないよう注意。)
$post_counterの最大値を指定することで、広告の表示回数を変更することができます。
CORESERVERで消えないファイルがある (レンタルサーバー)
文字コードの関係か、 ファイル名 の一部に日本語(2バイト文字)を使ったファイルが消せなくなりました。リネームもできない状態でした。net2ftpでも文字化けした状態で、文字コードを強制的にShift-JISにすると、ファイル名は表示されましたが、削除はできませんでした。(ファイル名以外のメニュー等は当然文字化けします。)
解決方法としてはCGIを作ってワイルドカードで削除することができるということでしたので、それにならって削除することにしました。
CGIは以下の通りです。こちらの記事やこちらの掲示板を参考にしました。属性は755とし、/public_htmlに設置しました。
続きを読む CORESERVERで消えないファイルがある (レンタルサーバー)
WordPressのダッシュボードの表示がおかしい
エラーログを取りたい場合 (PHP)
PHPのエラーログを記録する場合はphp.iniに以下のように記述します。エラーを画面に直接出力してもよいのですが、セキュリティ的に望ましくありません。
さくらのレンタルサーバ非公式FAQより引用します。
display_errors="0" error_reporting="2047" log_errors="1" error_log="/home/???????/www/phplog/php-error.log"
1行目:エラー情報を表示しないようにする。
2行目:出力するPHPエラーの種類を設定。2047はすべてのエラーを表示。
3行目:ログを保存する。
4行目:保存するディレクトリ。php-error.logのアクセス権の設定する。
simple_html_domのメモリリーク (PHP)
htmlのパースに便利なsimple_html_domはメモリリークのバグがある模様です。
適宜開放することが望ましいと思います。このサイトからの引用を下記に掲載します。
//対策版 $dom = new simple_html_dom; $dom->load($strBuffer, true); さまざまなDOM処理・・・ //使い終わったらclear $dom->clear();
上記のようにインスタンスを作って処理後に明示的に開放することで対応します。