1

pPHP でタグの ID 値を反復処理する非常に長い HTML テキストがあります。私の元の文字列:

$mystring="
<p> my very long text with a lot of words ....</p>
<p></p>
<p> my other paragraph with a very long text ...</p>
(...)
";

私が望む結果:

$myparsestring= "
<p id=1>my very long text with a lot of words ....</p>
<p id=2> my other paragraph with a very long text ...</p>
";

ご覧のとおりgetElementsByTagName ()、正規表現を使用できます (分割される場合があります)。

この仕事をする上でのあなたの指針は何ですか?

4

2 に答える 2

3

html の解析を計画している場合は、 xpathでDOMを使用してみてください。

簡単な例を次に示します。

$xpath = new DOMXPath($html);
$query = '//*/p';
$entries = $xpath->query($query);

正規表現を使用しないでください。このように html を解析することだけを計画している場合は、正規表現を使用する特別な理由がない限り、このメソッドを使用してください。

于 2012-11-14T11:15:39.957 に答える
0

あなたはこのように行くことができますregex

$mystring="
<p> my very long text with a lot of words ....</p>
<p></p>
<p> my other paragraph with a very long text ...</p>
(...)
";

// This will give you all <p> tags, that have some information in it.
preg_match_all('/<p>(?<=^|>)[^><]+?(?=<|$)<\/p>/s', $mystring, $matches);

$myparsestring = '';
for( $k=0; $k<sizeof( $matches[0] ); $k++ )
{
    $myparsestring .= str_replace( '<p', '<p id='.($k+1), $matches[0][$k] );
}

echo htmlspecialchars( $myparsestring );

そして出力/結果:

<p id=1> my very long text with a lot of words ....</p>
<p id=2> my other paragraph with a very long text ...</p>
于 2012-11-14T11:13:30.117 に答える