新しくなったエロジンへようこそ
10月まで旧サイトを公開しています。
https://old.erozine.jp
画像が見れない報告が目立っております
原因究明までお時間をいただくことがあります
2024.06.23(日)
対策として画像サーバ変更ボタンが設置されました
ギニューのチェンジが表示されれば成功です

AMPバージョンはこちら

AMPモードで画像タグ必須のwidthとheightを全記事一括取得するPHPコード

日付2017-06-17T20:51:23
分類
画像0枚
訪問数

AMPモードでは画像タグ<img>に横幅Widthと縦幅Heightの属性が必須でいずれか一つでも欠けていると画像が全く表示されません。 PDOのSQL文で正規表現を使ってWidthが無いもの、Heightが無いもの、それぞれWhere Likeして記事の画像タグを抽出し、getimagesize関数で一気に取得することができました。

getimagesize
array getimagesize ( string $filename [, array &$imageinfo ] )
function setsize($matches){
    list($w, $h) = getimagesize($matches[2]);
    return '<img' . $matches[1] . 'src="'.$matches[2].'" '. $matches[3] . ' width="' . $w . '" height="' . $h . '">';
}

foreach ($stmt as $row) {
    $content = preg_replace_callback(
        "/<img(.+?)src=\"(.+?)\"(.+?)>/",
        "setsize",
        $row['content']);
    $pdo->query("UPDATE article SET content = '{$content}' WHERE id={$row['id']}");
}

preg_replace_callback関数は複雑な正規表現の置換に適しており、独自関数をブチ込めます。それによって正規表現置換でgetimagesize関数が実現されます。

注意事項
既にwidthやheightが付いていた場合、うまく絞れていないとwidth="596" height="299" width="596" height="299"と重複します。

日付2017-06-17T20:51:23
分類
画像0枚
訪問数
最後までお読みいただき有難うございました
Thank you for watching until the end

似たような記事