-2

HTMLデータがありますが、このデータの一部を取得したいと思います。上部と下部を削除する必要があります。(H1以降およびH2の上に「提供するもの」というテキストが含まれるものはすべて変数に入れる必要があります)

<p>This text can be deleted</p>
<h1>This title also</h1>

<h2>FROM THIS TITLE I WANT THE TEXT</h2><p>SAME HERE</p>
<h2>...</h2><p>...</p>

<h2>What we offer</h2>
<p>This text isn't needed</p>

すべてのHTMLとテキスト をPHPでこれを行う方法について、 AFTER</h1>とENDINGで開始したいのですが。<h2>What we offer</h2>

これは正規表現なしでトリックを行います(ありがとうAlexandru)、しかし私はこれを達成するためにどの正規表現を使用できるのかとても興味があります...

$beginIndex = strpos($htmlString, "</h1>");
$endIndex = strpos($htmlString, "<h2>What we offer</h2>");
$desiredString = substr($htmlString, $beginIndex, $endIndex - $beginIndex);
4

2 に答える 2

1

要求している正規表現ソリューションは次のようになります。

$pattern = '/<\/h1>(.*)<h2>What we offer/s';
$matches = array();
preg_match($pattern, $htmlString, $matches);
$desiredString = $matches[1];
于 2012-11-14T14:44:20.747 に答える
1

必要な定義があれば、これは機能するはずです。

$beginIndex = strpos($htmlString, "</h1>");
$endIndex = strpos($htmlString, "<h2>What we offer</h2>");
$desiredString = substr($htmlString, $beginIndex, $endIndex - $beginIndex);
于 2012-11-14T14:11:32.087 に答える