-4

重複の可能性:
HTMLタグからスタイル属性を削除します

現在の画像は次のようになります

<img src="images/sample.jpg" alt="xyz"/>

ここで、HTMLファイルのすべてのタグに存在するそのようなすべてのaltタグを削除したいので、PHPコード自体がすべてのalt属性の外観を置き換える必要があります。出力は次のようになります <img src="images/sample.jpg" />。phpでどのように実行できますか?

前もって感謝します

4

4 に答える 4

1

ファイルを読みます。file_get_contents()を使用してファイルを読み取ることができます

$fileContent = file_get_contents('filename.html');
$fileContent = preg_replace('/alt=\"(.*)\"/', '', $fileContent);
file_put_contents('filename.html', $fileContent);

ファイルが書き込み可能であることを確認してください

于 2012-12-12T13:49:59.270 に答える
1

DOMDocumentHTMLの解析/操作に使用します。次の例では、HTMLファイルを読み取り、altすべてのimgタグから属性を削除してから、HTMLを出力します。

$dom = new DOMDocument();
$dom->loadHTMLFile('file.html');

foreach($dom->getElementsByTagName('img') as $image)
{
    $image->removeAttribute('alt');
}

echo $dom->saveHTML(); // print the modified HTML
于 2012-12-12T13:53:49.610 に答える
1

まず、変更するドキュメントソースを把握する必要があります。サーバー上のいくつかのhtmlファイルを編集するのか、リクエストによって生成されるhtml出力を編集するのか、それとも何をするのかは明確ではありません...

この回答では、HTMLへのアクセス方法について説明します。これは、出力バッファリングを使用した魔法の可能性がありfile_get_contents('filename.html');ます。

正規表現でHTMLを解析したくないので、パーサーを使用する必要があります。

altHTMLが有効であるためには属性が必要であるため、属性を「削除」する場合は、空の文字列に設定する必要があります。

これは機能するはずです:

$doc = DOMDocument::loadHTML($myhtml);
$images = $doc->getElementsByTagName('img'); 

foreach($images as $img) {
    $image->setAttribute('alt', '');
}

$myhtml = $doc->saveHTML();
于 2012-12-12T13:58:35.480 に答える
0

有効なxHTMLの場合、alt属性が必要です。

このようなものが機能します:

$xml = new SimpleXMLElement($doc);   // $doc is the html document.
foreach ($xml->xpath('//img') as $img_tag) {
    if (isset($img_tag->attributes()->alt)) {
        unset($img_tag->attributes()->alt);
    }
}
$new_doc = $xml->asXML();  
于 2012-12-12T13:53:19.547 に答える