dedecms の dededown クラスのリモート画像を取得する関数は以下の通りです。呼び出し時に渡すことも有効ですが、以下の 2 つの呼び出しは空で取得できないことがわかります。リモート画像を取得するための dedecms のクラスは以下の通りです。 これまでのものも有効ですが、以下の 2 つの文が空であり、
が取得できないことがわかりました。
リモート画像を取得する関数は以下の通りです。呼び出した場合も過去のものは有効ですが、以下の2文が空で取得できないことが分かりました。 url );
$htd->gethead( "content-type" )
上記の 2 つの文は空と呼ばれます。
function getremoteimage( $url, $rndtrueName )
{
// echo $url;[img]http://www.golffactorystore.com/images/200910/goods_img/ 599_P_1255757135855.jpg[/img]
$revalues = array( );
$ok = false;
$htd = new dedehttpdown( );
$htd- > openurl( $url );
//echo $htd->openurl( $url );
$sparr = array( "image/pjpeg", "image/jpeg", "image /gif ", "image/jpg", "image/png",
"image/xpng", "image/wbmp" );
if ( !in_array( $ htd- >gethead( "content-type" ), $sparr ) )
{
echo "1";
return "";
}
make_dir( dirname( $rndtrueName ) );
$itype = $htd->gethead( "content-type" );
$ok = $htd->savetobin( $rndtrueName ) ;
if ( $ok )
{
$data = getimagesize( $rndtrueName );
$revalues[0] = $rndtrueName;
list( , $revalues[2] ], $revalues[2] ) = $data;
}
$htd->close( );
if ( $ok )
{
return $revalues;
}
return "";
}
//HTTP プロトコルを使用してファイルをダウンロード
function savetobin( $savefilename )
{
if ( !$this->isgetok( ) )
{
return false;
}
if ( @feof( $this->m_fp ) )
{
$this->m_error = "接続が閉じられました。 ";
return false;
}
$fp = fopen( $savefilename, "w" );
while ( !feof( $this->m_fp ) )
{
fwrite( $fp, fread( $this->m_fp, 1024 ) );
}
fclose( $this->m_fp );
fclose( $fp );
return true;
}
//指定された URL を開きます
function openurl( $url, $requestType = "GET" )
{
$this->resetany( );
$this->JumpCount = 0;
$this->m_httphead = array( );
//print_r($this->m_httphead ) ;
/*
$extend =explode("." , $url);
$va=count($extend)-1;
$extend[$va];
$this->m_httphead[""]=
*/
$this->m_html = "";
$this->reTry = 0;
$this- > ;close( );
//システムを初期化します
$this->privateinit( $url );
$this->privatestartsession( );
}
//HTTP セッションを開始します
function privatestartsession( $requestType = "GET" )
{
if ( !$this->privateopenhost( ) )
{
$this->m_error .= "リモート ホストを開くときにエラーが発生しました!";
return false;
}