IE で div の高さを 1px にする方法

  http://fumika.jp/nikki/2005/07/ie-div-height-1px

- via: 福メモ
  http://www.fukulog.com/memo/2005-10-18-2.html

<div style="width: 100%; height: 1px; background-color: red; overflow: hidden;"></div>


  overflow: hidden; がポイント.

PDF の任意のページにリンクする方法

<a href="example.pdf#page=3">3 ページ目を表示</a>


  なるほど.いつか使う機会とかあるのかな.

- via: memo.xight.org
  http://memo.xight.org/2005-10-05-6.html

XHTML valid に nofollow タグを使用する方法

  http://www.fraction.jp/log/archives/2005/01/XHTMLvalid.xhtml

  トラックバックスパムやコメントスパムを避けるために導入された,nofollow.
  これを,XHTML に準拠させるには.

  head 要素の profile 属性を以下のように記述する.

<head profile="http://purl.org/net/ns/metaprof">

はてな記法をパーズする Perl モジュール Text::Hatena

  http://search.cpan.org/dist/Text-Hatena/

- via: www.textfile.org
  http://www.hyuki.com/t/200509.html#i20050930124733

  ハテナの近藤さんによるもの.

use Text::Hatena;

my $parser = Text::Hatena->new;
my $text = 'foo';
$parser->parse($text);
print $parser->html;


  とっても,簡単.
  ただし,現状ではリンクは解釈できないみたい.
  サニタイズもできない.
  とりあえず,Text/Hatena/Node.pm にサニタイズするメソッドを追加して,
  サブクラスで読み込むようにしてみたけど,なんかいい方法がありそう.

PEAR Text_Wiki 1.0.1 で日本語を扱う方法

$wiki = new Text_Wiki();
$wiki->setFormatConf('Xhtml', 'translate', HTML_SPECIALCHARS);
echo $wiki->transform($data);


setFormatConf() で Xhtml の translate オプションに HTML_SPECIALCHARS を指定してあげる.


- ref.: setFormatConf
  http://wiki.ciaweb.net/yawiki/index.php?area=Text_Wiki&page=MethodSetForma ...

- ref.: Text_Wiki Documentation
  http://wiki.ciaweb.net/yawiki/index.php?area=Text_Wiki&page=UserDocs

- ref.: PEAR :: Package :: Text_Wiki
  http://pear.php.net/package/Text_Wiki

「折り返す」pre

  http://sho.tdiary.net/20050922.html#p02

  各ブラウザで拡張してあるみたい.覚えておくと便利かも.

white-space: -moz-pre-wrap; /* Mozilla */
white-space: -pre-wrap;     /* Opera 4-6 */
white-space: -o-pre-wrap;   /* Opera 7 */
white-space: pre-wrap;      /* CSS3 */
word-wrap: break-word;      /* IE 5.5+ */

PHP の PATH_SEPARATOR について

  PHP で set_include_path() を使って,パスを追加するとき Windows 系と,UNIX 系では
  パスの区切り文字が違うので,今までは

if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
    set_include_path(get_include_path() . ':./libs');
} else {
    set_include_path(get_include_path() . ';./libs');
}


  とかやっていた.

  最近 PATH_SEPARATOR という定数を知って

set_include_path(get_include_path() . PATH_SEPARATOR . './libs');

  で幸せになっていたら,PATH_SEPARATOR が定義されていない場合があることが分かった.

  そこで,正解としては,

if (!defined('PATH_SEPARATOR')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') {
        define('PATH_SEPARATOR', ':');
    } else {
        define('PATH_SEPARATOR', ';');
    }
}

set_include_path(get_include_path() . PATH_SEPARATOR . './libs');


  ということになるのかな.損したか得したか分からない (汎用的なのは間違いなさそうだけど).

CSS を作成する際のお約束

  http://www.lucky-bag.com/archives/2005/08/default_style.html

* {
     margin: 0;
     padding: 0;
     font-style: normal;
     font-weight: normal;
  }


  何はともあれ,全称セレクタを使ってブラウザのデフォルトスタイルを消してしまっておく.

class="red large" のように、2 つ以上の適用クラスを並べられる

  http://e8y.net/blog/?p=124&more=1&c=1

<style type="text/css">
<!--
.red { color: red; }
.large { font-size: large; }
-->
</style>

<span class="red large">大赤字</span>


  ってな事ができるらしい.全く知りませんでした.これは結構便利かも.ルールは,

o 適用クラスを半角スペースで区切って複数指定できる
o id 属性ではそれはできない
o 値は左から順にカスケードして適用されていく

xml 文章を配列やオブジェクトにしてくれる PEAR::XML_Serializer

  http://pear.php.net/package/XML_Serializer

  Amazon Web Service で独自の広告を作っていて,XML の処理が面倒くさいとか思っていたら,
  XML_Serializer を発見した.

  実際は,XML_Serializer に含まれている XML_Unserializer を使う.

- インストール

# pear install http://pear.php.net/get/XML_Serializer-0.16.0.tgz

- 使い方

require_once 'XML/Unserializer.php';

$xml = <<<XML
<ItemAttributes>
  <Creator Role="著">宮川 達彦</Creator>
  <Creator Role="著">伊藤 直也</Creator>
  <ListPrice>
    <Amount>3045</Amount>
    <CurrencyCode>JPY</CurrencyCode>
  </ListPrice>
  <Publisher>オライリー・ジャパン</Publisher>
  <Title>Blog Hacks ―プロが教えるテクニック&amp;ツール100選</Title>
</ItemAttributes>
XML;

$Unserializer =& new XML_Unserializer();
$Unserializer->setOption('parseAttributes', TRUE);
$status = $Unserializer->unserialize($xml);
if (PEAR::isError($status)) {
    die($status->getMessage());
}

print_r($Unserializer->getUnserializedData());


- 出力

Array
(
    [Creator] => Array
        (
            [0] => Array
                (
                    [Role] => 著
                    [_content] => 宮川 達彦
                )

            [1] => Array
                (
                    [Role] => 著
                    [_content] => 伊藤 直也
                )

        )

    [ListPrice] => Array
        (
            [Amount] => 3045
            [CurrencyCode] => JPY
        )

    [Publisher] => オライリー・ジャパン
    [Title] => Blog Hacks ―プロが教えるテクニック&ツール100選
)

  Amazon Web Service から帰ってきた XML の一部を食わせてみると,見事に配列に入る.
  これは楽チン!

$Unserializer->setOption('parseAttributes', TRUE);


  このオプションは,属性もパーズするためのもの.