PHP preg match / replace?

php preg-match preg-replace regex
PHP preg match / replace?

文字列$ mystingを読み取り、e.xのすべてのインシデントを置き換える必要があります。

with

つまり、タイトルが欠落している場所にタイトルを追加し、タイトルタグにaltタグと同じ値を設定します。

いくつかのインシデントには、境界線、高さ、高さなどの追加パラメータがあります-これらはそのままにしておく必要があります…​

  1  0


ベストアンサー

正規表現ではなく、http://php.net/manual/en/class.domdocument.php [PHP DOMDocument]を見て、特に複雑な場合は属性を変更してください。

2


これを行うには、phpQueryまたはhttp://querypath.org/[QueryPath]を使用できます。

$qp = qp($html);
foreach ($qp->find("img") as $img) {
    $img->attr("title", $img->attr("alt"));
}
print $qp->writeHTML();

この単純なケースでは正規表現に頼ることが実現可能かもしれませんが:

preg_replace('#(]*)(\balt=)("[^"]+")#', '$1$2$3 title=$3', $h);

(preg_replace_callbackを使用して、title =属性がまだ存在しないことを確認する方が合理的です。)

2


あなたは本当に正規表現の代わりにhtmlパーサーを使用してこれを行いたいです。 正規表現はhtml処理には適していません。

0


私の答えは、有名な答えへのリンクです!

https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 [RegExはXHTML自己完結型タグを除くオープンタグと一致します]

0


私は通常、これらのタイプの状況で素早い汚いハックを作成します(通常、テンプレート化されたエンジンタグ、条件などの不整合があるかもしれない構造化されたデータを使用します)。 IMOはひどい解決策ですが、これらのスクリプトを非常に高速に実行できます。

Eg.

<?
$html = '



blahaahhh



';

$tags = explode('

0


タイトルとURLをコピーしました