index

2008年 4月
 
    1 2 3 4 5 6
  7 8 9 10 11 12 13
  14 15 16 17 18 19 20
  21 22 23 24 25 26 27
  28 29 30        
2008年 5月
        1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
  19 20 21 22 23 24 25
26 27 28 29 30 31  
2008年 6月
              1
  2 3 4 5 6 7 8
  9 10 11 12 13 14 15
16 17 18 19 20 21 22
  23 24 25 26 27 28 29
  30            

アレ

SimpleXML を使って XML をさくっと生成   ▽20080531a #プログラミング #PHP

……する方法についてはググれば山ほど出てくるので割愛(ぉ

なんかねーやってたら警告が.

Warning: SimpleXMLElement::addChild(): unterminated entity reference ほげほげ in ~~

で,調べてみるとどうも,SimpleXMLElement::addChild() でテキストデータを値としてエレメントを追加する時に, データの中の & とかをエスケープしてくれねーみたいです.

Bug #44458 Ampersand sign in SimpleXMLElement->addChild() causes incomplete XML

sergej at halogen-dg dot com: 追加データに & 入ってると警告でるんですが?

rrichards@php.net: あーそれバグじゃねーから.マニュアル嫁.& はエスケープしなきゃダメ.

えー……だって > とか < とかは自動的にエスケープされるじゃんよー. テキスト追加するのに & だけは手動でエスケープしてね,ってどういう仕様なのよー. ていうかマニュアルのどこにそんなこと書いてあんのよー見つかんねーよー.

んじゃ CDATA でぶっこんじゃうってのはどうっすかね? と思ってやってみたら, > とかだけはきっちりエスケープする仕様なので追加できません. 必要な事全部はやらないがしなくていい程度にはやるという PHP のうんこ仕様全開で困ります.

結局のところ…… htmlspecialchars() で & をエスケープしちゃうのが最速っぽいんだけど…… えー何それー……ダサー……

index