-1

私はこの関数を書きましたが、$dom. 属性を設定した後に属性を確認すると、正しいのですが、最終的な保存にはなりません。

function tj_add_alts( $content ) {
$dom = new DOMDocument();
$dom->loadHTML($content);

foreach ($dom->getElementsByTagName( 'img' ) as $node) {
    if ( trim( $node->getAttribute( 'alt' ) ) == "" ) {
        $img = $node->getAttribute( 'src' );
        $file_name = pathinfo($img, PATHINFO_FILENAME);
        $name = preg_replace( '/[^A-Za-z0-9 ]/', ' ', $file_name);
        $name = preg_replace( '/\s{2,}/', ' ', $name);
        $node->setAttribute( 'alt', $name );
    }
}

$content = $dom->saveHTML();

return $content;
}

更新: 問題は、DomDocument がdoctype宣言と<body>タグを自動的に追加することであると思われますが<head>、これは望ましくありません。それらに乗る方法はありますか?

4

2 に答える 2