我写了这个函数,但它似乎没有保存$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>
有没有办法摆脱那些?