*&が&に変換されないまま出力される場合がある [#v729b7bf] -ページ: BugTrack -投稿者: [[reimy]] -優先順位: 緊急 -状態: 提案 -カテゴリー: 本体バグ -投稿日: 2003-06-12 (木) 08:33:50 -バージョン: **メッセージ [#nc949576] &→&への変換が正しく行なわれない場合がある。 -&に半角英数文字が続き;で終わる文字列がインラインプラグインやユーザー定義に合致しない場合、&が&に変換されないまま出力される。 &hoge; &hoge; ~変換されないのは &半角英数文字; の場合だけで、&半角英数文字 だけで ;が付かない場合は正しく出力される。 &hoge &hoge ---- -実体参照が定義されているかどうかを調べる手段が…[[PHP:get_html_translation_table]](HTML_ENTITIES)には†などは含まれていないみたいですし。うーん。 -- [[ぱんだ]] &new{2003-06-12 (木) 09:41:39}; -ユーザ定義ルールを以下のように修正すれば、とりあえず「実体名による」実体参照を「全て」抑止できますが、それはお望みの動作ではないと思われ… -- [[ぱんだ]] &new{2003-06-12 (木) 09:41:39}; -'&(#[0-9]+|#x[0-9a-f]+|[0-9a-zA-Z]+);' => '&$1;', +'&(#[0-9]+|#x[0-9a-f]+);' => '&$1;', -[[W3C・Character entity references in HTML 4:http://www.w3.org/TR/html4/sgml/entities.html]] -- [[reimy]] &new{2003-06-12 (木) 13:55:18}; -get_autolink_pattern_sub()を使って、正規表現パターンを作ってみました。まだ最適化の余地はありそう(?)ですが、ちょっと泣けてきますね。(80桁で改行しています) -- [[ぱんだ]] &new{2003-06-12 (木) 15:39:08}; (?:A(?:Elig|acute|circ|grave|lpha|ring|tilde|uml)|Beta|C(?:cedil|hi)|D(?:agger|e lta)|E(?:TH|acute|circ|grave|psilon|ta|uml)|Gamma|I(?:acute|circ|grave|ota|uml)| Kappa|Lambda|Mu|N(?:tilde|u)|O(?:Elig|acute|circ|grave|m(?:ega|icron)|slash|tild e|uml)|P(?:hi|i|rime|si)|Rho|S(?:caron|igma)|T(?:HORN|au|heta)|U(?:acute|circ|gr ave|psilon|uml)|Xi|Y(?:acute|uml)|Zeta|a(?:acute|c(?:irc|ute)|elig|grave|l(?:efs ym|pha)|mp|n(?:d|g)|pos|ring|symp|tilde|uml)|b(?:dquo|eta|rvbar|ull)|c(?:ap|cedi l|e(?:dil|nt)|hi|irc|lubs|o(?:ng|py)|rarr|u(?:p|rren))|d(?:Arr|a(?:gger|rr)|e(?: g|lta)|i(?:ams|vide))|e(?:acute|circ|grave|m(?:pty|sp)|nsp|psilon|quiv|t(?:a|h)| u(?:ml|ro)|xist)|f(?:nof|orall|ra(?:c(?:1(?:2|4)|34)|sl))|g(?:amma|e|t)|h(?:Arr| arr|e(?:arts|llip))|i(?:acute|circ|excl|grave|mage|n(?:fin|t)|ota|quest|sin|uml) |kappa|l(?:Arr|a(?:mbda|ng|quo|rr)|ceil|dquo|e|floor|o(?:wast|z)|rm|s(?:aquo|quo )|t)|m(?:acr|dash|i(?:cro|ddot|nus)|u)|n(?:abla|bsp|dash|e|i|ot(?:in)?|sub|tilde |u)|o(?:acute|circ|elig|grave|line|m(?:ega|icron)|plus|r(?:d(?:f|m))?|slash|ti(? :lde|mes)|uml)|p(?:ar(?:a|t)|er(?:mil|p)|hi|i(?:v)?|lusmn|ound|r(?:ime|o(?:d|p)) |si)|quot|r(?:Arr|a(?:dic|ng|quo|rr)|ceil|dquo|e(?:al|g)|floor|ho|lm|s(?:aquo|qu o))|s(?:bquo|caron|dot|ect|hy|i(?:gma(?:f)?|m)|pades|u(?:b(?:e)?|m|p(?:1|2|3|e)? )|zlig)|t(?:au|h(?:e(?:re4|ta(?:sym)?)|insp|orn)|i(?:lde|mes)|rade)|u(?:Arr|a(?: cute|rr)|circ|grave|ml|psi(?:h|lon)|uml)|weierp|xi|y(?:acute|en|uml)|z(?:eta|w(? :j|nj))) -[[PHP:get_html_translation_table]]で対象となっているものだけでいいかも。それ以外はユーザー定義で個別対応とか。 -- [[reimy]] &new{2003-06-12 (木) 17:52:58}; #comment