2013-06-26 6 views
5

質問の枠組みはわかりません。私は下のタグがどのように働いているのかわかりません...パラメータを指定して画像を表示 -

<img src="img.png?value=23"/> 

このタグはうまくいきます。そしてそれはイメージを正しくレンダリングします。 value=23には何らかの効果がありますか?またはそれはブラウザによって無視されましたか?

私はこの方法を知っていません!それは画像にパラメータを渡すようなものですか?その場合、value属性を取得する方法。パラメータには意味がありますか

+0

を使用せずにリソースをダウンロードするには、ブラウザを強制的に

<img src="path_img.png?<?php time() ?>" /> 

を書き込むことが可能ですしかし、あなたはいつもそれを取り除いて何か変わったかどうかを調べることができます。考えられる唯一の解決策は、クライアントがキャッシュされたバージョンを使用していないことを確認するためにイメージが変更されたときに番号を変更できることです。 – Travesty3

+0

ok!しかし、私の質問はそれが意味をなさないか?それとも単にブラウザでigigoredですか? bcoz !! HTMLは最も寛大な言語です!何の理由もなくすべてが働く場所! – madhairsilence

答えて

1

私はそれが を意味しているのかわからない。しかし、それは、それは何もしませんほとんどのキャッシュ

+1

確かですか?すべてのドキュメント???リンク?? – madhairsilence

+0

はいすべての静的リソース(js、png ....) – cyrilkiller

-1

value=23あなたのブラウザではなくサーバによって無視されます。

これは、パラメータをWebサーバーに渡すようなものです。イメージの場合、ほとんど無視されます。

+0

なぜあなたはdownvoteですか? – Charles

+0

それはサーバーによって無視されていると言って間違っています。それはサーバーによって異なります。 – Uooo

2

このイメージが何らかの方法で動的である場合、このイメージをホストしているサーバーはPHPコードからイメージを生成している必要があります。

GD libraryをご覧ください。これにより、PHPを使用して、何もイメージにも基づいて画像を生成することができます。パラメータは、イメージ内にその値を含めるために渡す必要があります(たとえば、テキスト "123"を含むイメージ、または何らかの形で、たとえばユーザーIDなどのイメージを含むイメージ)。

その後、サーバー上の.htaccess.php.pngの拡張子を書き換え(または多分別の1)、それはいくつかのライブラリとクローラに本物の画像のように見えるようにする、またはスクリプトなど

別のオプションは、ということですこれは単純なイメージであり、valueは無視されているか、イメージがキャッシュされていないことを確認するためにランダムです。

2

value=23は、サーバがそれを使用する場合にのみ効果があります。ブラウザはhttp://example.com/img.png?valud=23を要求します。そのため、サーバーにパラメータが表示されます。

たとえば、PHPの場合、$_GET['value']を使用し、その変数によって送信される画像が変更される場合、value=23が必要です。

パラメータは、高さまたは幅を指定するため、または読み込まれる画像を決定するために、画像とともに送信されることがよくあります。

+0

ok .. @ Travesty ..と述べたように、値が乱数または任意のパラメータである場合、ブラウザは新しい画像を理解し、キャッシュを避けることを「特別に通知する」でしょうか? – madhairsilence

+0

@madhairsilenceブラウザに関しては、 'img23.png'や' img.png?value = 23'を要求しても問題ありません。ブラウザは実際には違うファイルであるとみなします'imp.png?value = 23'が既にロードされていない限り、キャッシュからロードされません。 – Mooseman

1

確かにあります!

たとえば、画像のサイズを動的に変更するためのこのソフトウェアをご覧ください。

http://imageresizing.net/docs/basics

正しく行われた場合は、画像のURLにパラメータを追加することは非常に有用である可能性があります。

編集:

他の人が指摘するように、サーバーが追加のパラメータを処理する方法を知っていることを確認する必要があります。この場合、画像のサイズ変更/透かし/回転を意図しています。それは確かに他の素晴らしいことをすることができます。

+0

それはイメージをホストしているサーバーに依存します - それが動的に生成されるかどうか。このロジックがどこにでも当てはまると思われるように、あなたはそれを聞こえるようにします。 – casraf

+0

@ChenAsraf、私は答えを明らかにするために答えを編集しました。 –

+0

ちょうど確認したい!そう 。ブラウザはパラメータが何であるか分からない。単に画像をレンダリングするだけですか?いくつかのパラメータとして!そしてそれは明確なキャッシングとは関係がありません!!! – madhairsilence

6

pngのMIMEタイプがテキストで、ファイルがPHPコードのテキストファイルであるかのように解析すると、サーバーによって異なります。

実際にはブラウザの設定ではなくサーバーの設定によります。

Morover、mod_rewriteは、pngのように見えるファイルをphpファイルに変更するために使用できます。 PHPパーサを経由して、PNGファイルを解析追加

AddType application/x-httpd-php .png

asdfasdf.pngだからあなたが$_GET['value']asdfasdf.pngを上使用し、この場合にimg.php?value=asdfasdf

として扱われるこれらの行ではmod_rewriteを

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_\-]*)\.png$ img.php?value=$1 

またはimg.php?value=asdfasdf。それは効果があります。

サーバがそのようなことを行うように設定されておらず、画像が画像である場合(はい、それは鮮やかな文章であることがわかります)、それは一般的な画像には影響しません。

要約すると、

これは、URL内の引数が主に特定の項目についての情報を取得するために使用されているが、それ以上の他の方法で使用することができ、ブラウザ

0

上に存在しないサーバーの構成によって異なります。イメージについて話すとき、ブラウザは引数value=23を無視しませんが、使用しているサーバは無視します。

画像がある種の動的なものなら、画像のURLやその他のものを変更するために画像を使用することができます。このサンプルの

関連する問題