2016-09-02 6 views
0

イメージURLをDATA-URIに置き換えてページを最適化しようとしていますが、イメージがDATA URIに変換されてレンダリングされません。ここでデータイメージURIが機能しない

は、データURIに通常のURLを変換するに私のコードです:

$imgurl= "https://www.cashy.in/images/banners/0ad08aafdd0887ed79f9fcc4321d54ed.png"; 
$type=substr($imgurl, -3); 
$newimg=base64_encode($imgurl); 
$o_img="data:image/".$type.";base64,".$newimg; 
+0

URLをbase64でエンコードしていないため、画像データ自体をエンコードする必要があります。 'base64_encode(file_get_contents($ imgurl));'のようなものです。 – Phylogenesis

+0

どうすればいいですか? – mohit

+0

@Phylogenesisそれは感謝しました – mohit

答えて

1

上述したように、あなたは画像自体のURLをコードしない、あなたは実際のデータをエンコードする必要があります。

そのため、次のコードのようなものを使用する必要があります(これを実行するときしかし、あなたは画像のサイズによってあなたの生成されるHTMLのサイズを大きくしていることを理解する必要があります

$imgurl= "https://www.cashy.in/images/banners/0ad08aafdd0887ed79f9fcc4321d54ed.png"; 
$type=substr($imgurl, -3); 
$newimg=base64_encode(file_get_contents($imgurl)); 
$o_img="data:image/".$type.";base64,".$newimg; 

をプラスbase64エンコーディングに固有の33%のオーバヘッド)。画像自体が非常に小さく、余分なHTTP要求のオーバヘッドが必要な余分なダウンロードを上回る場合にのみ、これを実行します。

関連する問題