2017-04-06 9 views
0

私は本当に良いライトボックススクリプトを使用していますが、画像サイズを出力する必要があります。私が使用しているサイトはPHPであり、アップロード時にイメージのサイズを変更できます。イメージサイズをデータベースに格納しません。phpまたはjavascript/jquery-getimagesizeを使用して画像サイズを取得できない

コードを次のように表示する必要があります。

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456"> 
    <img src="http://www.fullurl.com/thumbnail-image.jpg" alt="product name" /> 
</a> 

私はgetimagesizeを使用しようとしましたが、システムによってサイズ変更されていない画像でのみ動作します。私はアップロードされたがサイズ変更されていないイメージとして、いくつかの重要な情報が欠けていると思います。現在約1200枚の画像がアップロードされていますので、やり直しはオプションではありません。

私の現在の方法は、以下のようにphpを使用しています。

<?php 
$image1 = 'http://www.fullurl.com/thumbnail-image.jpg'; 
list($width, $height) = getimagesize($image1); 
?> 

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456"> 
    <img src="http://www.fullurl.com/thumbnail-image.jpg" alt="product name" /> 
</a> 

私が以下を使用すると、出力としてbool(false)が返されます。

$path1 = 'http://www.fullurl.com/image.jpg'; 
$vals_arr1 = getimagesize($path1); 
echo "<pre>";var_dump($vals_arr1);echo "</pre>"; 

私はプログラマーではありません。私の質問は、以下のように画像情報を出力するにはどうすればいいですか?私は、代わりにPHP、jquery/javascriptを試してみてうれしいです。理想的には、それは単純で速い必要があります。

<a href="http://www.fullurl.com/image.jpg" data-original-url="http://www.fullurl.com/image.jpg" data-original-width="123" data-original-height="456"> 
+0

Typo? '$ image1 = 'http://www.fullurl.com/thumbnail-image.jpg'];'は '$ image1 = 'http://www.fullurl.com/thumbnail-image.jpg'; ' –

+0

それで、イメージURLを挿入したコードを削除しました。私はその例からそれを削除しました。残念ながらそれほど単純ではありません。しかし、ありがとう。 – Legin76

答えて

0

これはバグでは、どこか別の場所でなければなりません

$path1 = 'https://jpeg.org/images/jpeg-home.jpg'; 
$vals_arr1 = getimagesize($path1); 
echo "<pre>";var_dump($vals_arr1);echo "</pre>"; 

動作します。 URLを確認してください!彼らは有効ですか? サーバー上でallow_url_fopentrueに設定されていることを確認してください。エルス

これは助けることができます:https://stackoverflow.com/a/25231517/4916265

+0

はいこれで私はこれをチェックしました。手動でURLを入力すると同じ結果になります。イメージをアップロードしても問題ありませんでしたが、既存のイメージに組み込みのresizerを使用したときに破損していました。 URLは変更されませんでした。画像はまだブラウザーで働いていた – Legin76

0

をジェームズが指摘したようPHP docs websiteにドットことが要求された情報をチェックする前に、getimagesize画像全体をダウンロードします。これは、リモートからアクセスされる大きな画像では非常に遅いです。幅/高さはファイルの最初の数バイトにあるので、ファイル全体をダウンロードする必要はありません。彼は、幅と高さを報告するのに適切なデータが見つかるまで、バイトをストリーミングすることによってJPEGのサイズを取得する関数を書いた。

彼が書いた方法は、遠隔画像を可能にするでしょう。

コードはここにあります:http://php.net/manual/en/function.getimagesize.php#88793

+0

これらの画像は800x800より大きくありません。最初に調べたのは54kbと400x400でした。 – Legin76

+0

私は、提案されたURLでJamesからコードを試しました。システムによってサイズ変更された画像では、応答は "NULL"となります。私は画像の寸法がファイルにないと思う。 – Legin76

+0

そうかもしれない –

関連する問題