0

テキストをリストに変換するのに問題があります。状況は、データベースから次のようなテキストを取得することです。

"Hello, my name is michael, my hobbys are:
- computers
- guitar
and some more blabla "

いいえ、リストされたポイント(この場合はコンピューターとギター)を順序付けられていないhtmlリストに変換したいので、結果は次のようになります。

"Hello, my name is michael, my hobbys are:
<ul>
<li>computers<li>
<li>guitar</li>
</ul>
and some more blabla ".

最善の解決策は正規表現でこれを行うことだと思いますが、私の知識はこれを実現するのに十分ではありません。/\n- /すべての幅を<li>タグに置き換えて試してみましたが、うまくいきました。しかし、どうすればクロージングを取得でき、</li>さらに混乱を招くので、両方の<ul>タグを取得するにはどうすればよいですか?

よろしくお願いします。

4

3 に答える 3

5

構文は、単純なマークアップ言語であるMarkdownとほぼ同じに見えます。唯一の違いは、空白が少しあることです。

Hello, my name is Michael, my hobbies are:

 - Computers
 - Guitar

and some more blabla

これに変換されます:

<p>Hello, my name is Michael, my hobbies are:</p>

<ul>
    <li>Computers</li>
    <li>Guitar</li>
</ul>

<p>and some more blabla</p>

役に立つと思うPHPMarkdownプロジェクトがいくつかあります。

于 2013-01-08T14:16:27.910 に答える
0

正規表現など、これを行う方法はたくさんありますが、特定のケースでは、explode()関数で十分です。できるよ:

$array = explode("\n", $string);

これで、$ arrayの最初のスロットに「こんにちは、私の名前はマイケル、私の趣味は:」、2番目のスロットに「-computers」などが表示されます。

次に、配列に目を通し、「-」で始まる要素ごとに、それを<li>要素</li>に変換します。

これは非常にバニラな方法ですが、効率的であり、正規表現を使用する必要はありません。

于 2013-01-08T14:17:56.287 に答える
-1

残念ながら、正規表現を行うのが最善です

于 2013-01-08T14:15:51.420 に答える