0

HTML からテキストを取得して何らかの処理を行い、それに変更して、その HTML コードに php で再挿入したいと考えています。

<p>This is my    sentence   <span>and   more</span> also <strong>important</strong> part.</p>

最良の方法は何ですか?preg_* を使用していますか? テキストを HTML スタイルに再挿入するにはどうすればよいですか?

たとえば、単語間の二重以上のスペースをすべて削除したい。

preg_replace('/\s+/', ' ', $myText);

しかし、htmlタグや属性などではなく、htmlのテキストに適用したいだけです...

4

1 に答える 1

1

DomDocument をご覧ください。これにより、HTML で何らかの操作を行うことができます。

http://www.php.net/manual/en/domdocument.loadhtml.php

編集

HTMLの例で何をしたいのかを正確に詳しく説明したい場合は、より具体的な答えを提供できるかもしれません:)

編集

更新された回答を反映するには: HTML の複数のスペースはとにかく折りたたむ必要がありますが、それらを削除したい場合は、次のことを試すことができます。

$result = preg_replace_callback('/(?<=\>)[\w\s]+(?=\<)/', function($match) {
    return preg_filter('/\s+/', ' ', $match[0]);
}, $str);

私は決して正規表現の専門家ではないので、これを行うためのよりエレガントな方法があると確信していますが、それでもこれはうまくいくかもしれませんpreg_replace_callback. 次に、preg_filter(またはpreg_replace) を介して結果を渡し、複数のスペースを 1 つのスペースに置き換えます。

これが役立つ/うまくいくことを願っています:)

于 2012-04-11T22:05:54.307 に答える