重複の可能性:
HTMLタグからスタイル属性を削除します
現在の画像は次のようになります
<img src="images/sample.jpg" alt="xyz"/>
ここで、HTMLファイルのすべてのタグに存在するそのようなすべてのaltタグを削除したいので、PHPコード自体がすべてのalt属性の外観を置き換える必要があります。出力は次のようになります
<img src="images/sample.jpg" />
。phpでどのように実行できますか?
前もって感謝します
重複の可能性:
HTMLタグからスタイル属性を削除します
現在の画像は次のようになります
<img src="images/sample.jpg" alt="xyz"/>
ここで、HTMLファイルのすべてのタグに存在するそのようなすべてのaltタグを削除したいので、PHPコード自体がすべてのalt属性の外観を置き換える必要があります。出力は次のようになります
<img src="images/sample.jpg" />
。phpでどのように実行できますか?
前もって感謝します
ファイルを読みます。file_get_contents()を使用してファイルを読み取ることができます
$fileContent = file_get_contents('filename.html');
$fileContent = preg_replace('/alt=\"(.*)\"/', '', $fileContent);
file_put_contents('filename.html', $fileContent);
ファイルが書き込み可能であることを確認してください
DOMDocument
HTMLの解析/操作に使用します。次の例では、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
まず、変更するドキュメントソースを把握する必要があります。サーバー上のいくつかのhtmlファイルを編集するのか、リクエストによって生成されるhtml出力を編集するのか、それとも何をするのかは明確ではありません...
この回答では、HTMLへのアクセス方法について説明します。これは、出力バッファリングを使用した魔法の可能性がありfile_get_contents('filename.html');
ます。
正規表現でHTMLを解析したくないので、パーサーを使用する必要があります。
alt
HTMLが有効であるためには属性が必要であるため、属性を「削除」する場合は、空の文字列に設定する必要があります。
これは機能するはずです:
$doc = DOMDocument::loadHTML($myhtml);
$images = $doc->getElementsByTagName('img');
foreach($images as $img) {
$image->setAttribute('alt', '');
}
$myhtml = $doc->saveHTML();
有効な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();