-
[name(=(value|"value"))( attribute=(value|"value"))*]
No.5406【引用】静的解析ツールPHPStan
https://qiita.com/natsuyoshi_jr/items/24bf34579119628eefe2
php7系の互換性チェックに使える?
トップ > メモ一覧 > カテゴリ「ライブラリ・フレームワーク」の絞り込み結果 : 31件
Zend_Markup には現在 BBCode パーサーと Textile パーサー という2つのパーサーが同梱されています。
Zend_Markup のパーサは、マークアップによる文をトークン木へと 変換するクラス群です。ここの例では BBCode パーサーを用いますが、 全てのパーサーにおいてトークン木の見解は変わりません。 例として BBCode のこの要素で始めます:
[b]foo[i]bar[/i][/b]baz
BBCode パーサーは、要素を分離し以下の木構造を生成した値を持つことでしょう:
[b]
foo
[i]
bar
baz
クローズタグは消えていることにお気づきになったでしょう、それらは木構造の 内容として出現しません。これは、クローズタグは実際の内容のものではないからです。 ですが、これは単にクローズタグを消失したことを意図するものではなく、 タグ自身のタグ情報内で保持されています。さらに、これは木構造自身の簡潔な概観で あるだけということに注意してください。実際の木構造は、タグの属性とその名について より多くの情報を含んでいます。
BBCode パーサーは BBCode をトークン木へ変換する Zend_Markup パーサーです。 全ての BBCode タグの文法は:
有効な BBCode タグのいくつかの例は:
[b] [list=1] [code file=Zend/Markup.php] [url="http://framework.zend.com/" title="Zend Framework!"]
標準で、 '[/tagname]' フォーマットを用いて閉じられます.
Textile パーサーは、Textile からトークン木へと変換する Zend_Markup パーサーです。 Textile はタグ構造を持っていないため、 以下は見本例のタグのリストです:
入力例 | 出力例 |
---|---|
*foo* | <strong>foo</strong> |
_foo_ | <em>foo</em> |
??foo?? | <cite>foo</cite> |
-foo- | <del>foo</del> |
+foo+ | <ins>foo</ins> |
^foo^ | <sup>foo</sup> |
~foo~ | <sub>foo</sub> |
%foo% | <span>foo</span> |
PHP(PHP Hypertext Preprocessor) | <acronym title="PHP Hypertext Preprocessor">PHP</acronym> |
"Zend Framework":http://framework.zend.com/ | <a href="http://framework.zend.com/">Zend Framework</a> |
h1. foobar | <h1>foobar</h1> |
h6. foobar | <h6>foobar</h6> |
!http://framework.zend.com/images/logo.gif! | <img src="http://framework.zend.com/images/logo.gif" /> |
さらに、 Textile パーサーは全てのタグを段落へとラップします; 段落は2行の新しい行で終わり、よりタグがあった場合、新しい段落が加えられます。
Textile パーサーは2種類のリストをサポートします。"#"記号を用いた数値型と "*"記号を用いた bullit リストです。両方のリストの例:
# Item 1 # Item 2 * Item 1 * Item 2
上記は2つのリストを生成します: 一つは、数値型; 2つ目は、 bulleted 。 リスト内で、太 (*)、と 強調 (_)のように標準タグを用いることができます。タグは、 ('h1'などのように)新しい行にて始まっている必要があり、リスト内で用いることは できません。
require_once LIB_DIR.'/Geomobilejp/Converter.php'; require_once LIB_DIR.'/Geomobilejp/IArea.php'; $fpOri = fopen(ORIGINAL_FILE, 'r'); $fpNew = fopen(NEW_FILE, 'w'); while ($row = fgetcsv($fpOri, '1024')) { $newRow = array(); foreach ($row as $value) { //$newRow[] = mb_convert_encoding($value, 'UTF-8', 'SJIS-win'); $newRow[] = $value; } $converter = new Geomobilejp_Converter($row[10], $row[9], 'wgs84'); $area = Geomobilejp_IArea::seekArea($converter); $newRow[] = $area->getIAreaCode();// 17202 $newRow[] = $area->getName();// 大阪駅/阪急梅田駅周辺 fwrite($fpNew, mb_convert_encoding(create_csv_row($newRow), 'SJIS-win', 'UTF-8')."\r\n"); } fclose($fpOri); fclose($fpNew); function create_csv_row($row) { $temp = ""; foreach ($row as $value) { // $value = mb_convert_encoding($value, 'SJIS', 'auto'); if ($value != null) $value = str_replace('"', '""', $value);//クォート if ($value != null) $value = str_replace("\r","",$value);//改行コードを変換 $temp .= '"' . $value . '",'; } return $temp; }