2011-02-01 11 views
2

段落の作成を処理するために必要な単純なテキストエディタを実行しています。プラス記号(+)で始まる行から段落を作成する方法

の段落では、私は変更する必要があるもの長い話を短く、WikiDot構文になります: < H1>段落</H1 < H2に>

++ subparagraph 1 

変化に

+ paragraph 1 

変更>サブパラグラフ</h2>

PHPで? CrayonViolentの(第一、第二interrups置き換える場合)@上に展開し

+1

段落間の区切り文字は何ですか?改行(\ n)?ダブル改行(\ n \ n)? –

+0

@Crayon 2改行 –

+0

車輪を改造しないでください。 WikiDotはオープンソースであり、パーサーは自由に利用できます。その代わりに使用してください。 – lonesomeday

答えて

3

<?php 
    $content = "Hello, world 

+ Big Heading 

++ Smaller heading 

Additional content"; 

    function r($m){ 
    $tag = "h".strlen($m[1]); 
    return "<{$tag}>{$m[2]}</{$tag}>"; 
    } 
    $content = preg_replace_callback('/^(\+{1,6})\s?(.*)$/m','r', $content); 

    echo $content; 
?> 

はまた、少し良くマッチングするための正規表現にm(マルチライン)フラグを追加ヘッダーのみを行います<h1><h6>

実例がありますhere

2
$content = preg_replace ("~^\+\+(.*?)\n\n~",'<h2>$1</h2>',$content); 
$content = preg_replace ("~^\+(.*?)\n\n~",'<h1>$1</h1>',$content); 
+0

ありがとうございました、+作品ですが、++ではありません。私が入力したとき:+ヘッダー\ n \ n ++ヘッダー2 –

+0

ありがとうBradしかし、完全なソリューションを提供したが、私はあなたの答えを重要な部分upvote。 –

関連する問題