0

私がやりたいことは次のとおりです。

  1. ユーザーはjingのようなアプリケーションでスクリーンショットを撮ります。わかった!
  2. Jingが返したリンクを貼り付けます。わかった!
  3. サーバーは、ユーザーが入力したリンクを処理し、画像のソースURLを抽出します。しかし、サーバーが「クリーンな」画像ソースURLを取得する方法がわかりません。たとえば、これはスクリーンショットhttp://screencast.com/t/zxBzNNkcgを共有した後にJingが返したリンクですが、画像の実際のURLはhttp://content.screencast.com/users/TT13/folders/Jing/mediaのようになります。 /c25ec5c6-bc6a-413c-a50b-ada95fac4ed2/2012-07-25_0221.png
  4. サーバーは画像のソースURLを返します。わからない!

JavascriptまたはPHPで画像のURLを取得する方法はありますか?

4

4 に答える 4

1

次のように、Simple PHP DOM Parser を使用して、URL に画像が含まれている限り、URL を考慮せずに URL から画像を取得できます。

foreach($html->find('div[class=div-that-contain-the image]') as $div) {         
        foreach($div->find('img') as $img){     
            echo "<img src='" . $img->src . "'/>";          
        }

    }

それが私の解決策です。

于 2012-07-25T01:34:57.507 に答える
0

Query Pathなどの DOM ライブラリを使用して、画像を含むページを取得できます。

それを使用して、画像への URL を抽出できます。

したがって、ステップ3で:

  • 共有スクリーンショット ページのソースを取得します (おそらく を使用しますfile_get_contents)
  • Query Pathを使用して、スクリーンショットの画像 src を抽出します。
  • 画像のソース URL をユーザーに返す
于 2012-07-25T01:31:34.910 に答える
0

はい。画像を右クリックして [画像の場所をコピー] に移動すると、 http://content.screencast.com/users/TT13/folders/Jing/media/c25ec5c6-bc6a-413c-a50b-ada95fac4ed2/2012-であることがわかります。07-25_0221.png

プログラムで行う場合は、cURL と simplehtmldom.sourceforge.net を使用して、出力された HTML を解析して実際のリンクを特定します。

于 2012-07-25T01:33:29.043 に答える
0

Javascript の回答:

出力画像は常に同じクラスになりembeddedObjectますか?

もしそうなら、次のようなものはどうですか:

myVar = document.getElementsByClassName('embeddedObject');
myVar[0].getAttribute("src");

もちろん、このmyVar[0]参照では、ページに embeddedObject クラスを持つ画像が 1 つしかないことを前提としています。そうでない場合は、ソートするか、毎回どのインデックスを参照するかを知る必要があります。

また、これは残念ながら IE8 ではサポートされていないようです (どのブラウザーをサポートする必要がありますか?): http://caniuse.com/getelementsbyclassname

于 2012-07-25T03:01:02.390 に答える