Changeset 20748 for lang/php/HTML_CSS_Mobile/trunk/HTML/CSS/Mobile.php
- Timestamp:
- 10/05/08 06:21:43 (3 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
lang/php/HTML_CSS_Mobile/trunk/HTML/CSS/Mobile.php
r20747 r20748 99 99 } 100 100 } 101 101 102 102 return $this; 103 103 } … … 124 124 // loadHTML/saveHTMLのバグに対応。XML宣言の一時退避 125 125 $declaration = ''; 126 if (preg_match('/^<\?xml\s +.+?\?>\n?/i', $document, $e))126 if (preg_match('/^<\?xml\s[^>]+?\?>\s*/', $document, $e)) 127 127 { 128 128 $declaration = $e[0]; … … 130 130 } 131 131 132 // 数値文字参照・実体参照をエスケープ133 $document = preg_replace('/&(# \d+|\w+);/', 'HTMLCSSINLINERESCAPE%$1%::::::::', $document);132 // 文字参照をエスケープ 133 $document = preg_replace('/&(#(?:\d+|x[0-9a-fA-F]+)|[A-Za-z0-9]+);/', 'HTMLCSSINLINERESCAPE%$1%::::::::', $document); 134 134 135 135 // 機種依存文字がエラーになる問題を回避するため、UTF-8に変換して処理 … … 155 155 } 156 156 /**************************************** 157 * 本処理 157 * 本処理 158 158 ****************************************/ 159 159 … … 198 198 $inline_style .= $k . ':' . $v . ';'; 199 199 } 200 foreach ($elements as $element) 200 foreach ($elements as $element) 201 201 { 202 202 if ($attr_style = $element->attributes->getNamedItem('style')) … … 222 222 { 223 223 $new_style = implode(PHP_EOL, $add_style); 224 $new_style = str_replace(']]>', ']]]><![CDATA[]>', $new_style); 224 225 $new_style = implode(PHP_EOL, array('<![CDATA[', $new_style, ']]>')); 225 226 … … 243 244 244 245 // エスケープしていた参照を復元 245 $result = preg_replace('/HTMLCSSINLINERESCAPE%(# \d+|\w+)%::::::::/', '&$1;', $result);246 $result = preg_replace('/HTMLCSSINLINERESCAPE%(#(?:\d+|x[0-9a-fA-F]+)|[A-Za-z0-9]+)%::::::::/', '&$1;', $result); 246 247 247 248 // 退避したXML宣言を復元 … … 321 322 { 322 323 // 文字コードをDOM利用のためにUTF-8化 323 $css_encoding = mb_detect_encoding($css_string, 'UTF-8, eucjp-win, sjis-win, iso-2022-jp');324 $css_encoding = mb_detect_encoding($css_string, 'UTF-8, eucjp-win, sjis-win, iso-2022-jp'); 324 325 if ($css_encoding != 'UTF-8') 325 326 { … … 329 330 $html_css = new HTML_CSS(); 330 331 $css_error = $html_css->parseString($css_string); 331 if ($css_error) 332 if ($css_error) 332 333 { 333 334 throw new RuntimeException('ERROR: css parse error');
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)