【php开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了php开源代码-insenz.php的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
<?php
class videoclient_result
{
var $status;
var $errMessage;
var $errCode;
var $_result;
function videoclient_result( $result )
{
$this->status = $result['status'];
$this->errMessage = $result['errMessage'];
$this->errCode = $result['errCode'];
$this->_result = $result;
if ( $result['resultData'] )
{
foreach ( $result['resultData'] as $value )
{
$this->_result['results'][] = new videoclient_result( $value );
}
}
}
function iserror( )
{
return videoclient::iserror( $this->_result );
}
function getcode( )
{
return videoclient::getcode( $this->_result );
}
function getmessage( )
{
return videoclient::getmessage( $this->_result );
}
function get( $field = false )
{
return $field ? $this->_result[$field] : $this->_result;
}
}
class videoclient
{
var $appId;
var $version = "0.1";
var $key = "ComsenzVideoService";
var $apiServerUrl = SERVER_URL;
function videoclient( $appId )
{
$this->appId = $appId;
}
function geturl( )
{
return $this->apiServerUrl;
}
function seturl( $url )
{
$this->url = $url;
}
function _sign( $args )
{
return md5( $args );
}
function _encrypt( $str )
{
return $this->authcode( $str, $this->key );
}
function _decrypt( $str )
{
return $this->authcode( $str, $this->key, "DECODE" );
}
function authcode( $string, $key, $operation = "ENCODE" )
{
$key_length = strlen( $key );
if ( $key_length == 0 )
{
return false;
}
$string = $operation == "DECODE" ? base64_decode( $string ) : substr( md5( $string.$key ), 0, 8 ).$string;
$string_length = strlen( $string );
$rndkey = $box = array( );
$result = "";
$i = 0;
for ( ; $i <= 255; ++$i )
{
$rndkey[$i] = ord( $key[$i % $key_length] );
$box[$i] = $i;
}
$j = $i = 0;
for ( ; $i < 256; ++$i )
{
$j = ( $j + $box[$i] + $rndkey[$i] ) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
$a = $j = $i = 0;
for ( ; $i < $string_length; ++$i )
{
$a = ( $a + 1 ) % 256;
$j = ( $j + $box[$a] ) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
$result .= chr( ord( $string[$i] ) ^ $box[( $box[$a] + $box[$j] ) % 256] );
}
if ( $operation == "DECODE" )
{
if ( substr( $result, 0, 8 ) == substr( md5( substr( $result, 8 ).$key ), 0, 8 ) )
{
return substr( $result, 8 );
}
else
{
return "";
}
}
else
{
return str_replace( "=", "", base64_encode( $result ) );
}
}
function _postcurl( $url, $post_data )
{
$cookie = "";
if ( $_COOKIE['insenz_session_id'] )
{
$cookies .= session_name( )."=".urlencode( $_COOKIE['insenz_session_id'] ).";";
}
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $post_data );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_COOKIE, $cookies );
$result = curl_exec( $ch );
$errorMsg = curl_error( $ch );
if ( !empty( $errorMsg ) )
{
return new videoclient_result( array(
"status" => 0 - 1,
"errMessage" => $errorMsg,
"errCode" => 0 - 3
) );
}
if ( is_resource( $ch ) )
{
curl_close( $ch );
}
return $result;
}
function _postsock( $url, $post_data )
{
if ( !function_exists( "fsockopen" ) )
{
return new videoclient_result( array(
"status" => 0 - 1,
"errMessage" => "瀵逛笉璧?鎮ㄧ殑PHP涓嶆敮鎸乻ocket",
"errCode" => 0 - 4
) );
}
$urlInfo = array( );
$urlInfo = parse_url( $url );
$port = 0 == strcasecmp( $urlInfo['scheme'], "https" ) ? 443 : 80;
$httpHeader = "POST ".$urlInfo['path']."?".$urlInfo['query']." ".strtoupper( $urlInfo['scheme'] )."/1.0\r\n";
$httpHeader .= "Host: ".$urlInfo['host']." \r\n";
$httpHeader .= "Connection: Close\r\n";
$httpHeader .= "Content-type: application/x-www-form-urlencoded\r\n";
$httpHeader .= "Content-length: ".strlen( $post_data )."\r\n";
$httpHeader .= "Referer: ".$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']."\r\n";
$cookie = "";
if ( $_COOKIE['insenz_session_id'] )
{
$cookies .= session_name( )."=".urlencode( $_COOKIE['insenz_session_id'] ).";";
}
$httpHeader .= "Cookie: ".$cookies."\r\n";
$httpHeader .= "\r\n";
$httpHeader .= $post_data;
$httpHeader .= "\r\n\r\n";
$resData = "";
$fp = @fsockopen( $urlInfo['host'], $port );
if ( $fp )
{
if ( fwrite( $fp, $httpHeader ) )
{
while ( !feof( $fp ) )
{
$resData .= fread( $fp, 8192 );
}
fclose( $fp );
$resContent = substr( strstr( $resData, "\r\n\r\n" ), 4 );
return $resContent;
}
else
{
return new videoclient_result( array(
"status" => 0 - 1,
"errMessage" => "涓嶈兘鍚戞湇鍔″櫒URL鍙戦佹暟鎹?,
"errCode" => 0 - 5
) );
}
}
else
{
return new videoclient_result( array(
"status" => 0 - 1,
"errMessage" => "涓嶈兘杩炴帴鏈嶅姟鍣?,
"errCode" => 0 - 6
) );
}
}
function _docall( $mod, $params )
{
$tmpArgs = array( );
$url = "";
if ( $this->appId )
{
$params['appId'] = $this->appId;
}
$params['method'] = $mod;
$params['version'] = $this->version;
foreach ( $params as $paramName => $paramValue )
{
$tmpArgs[] = urlencode( $paramName )."=".urlencode( $paramValue );
}
$args = join( "&", $tmpArgs );
$args .= "&sign=".$this->_sign( $args );
$tmpArgs = $args;
$url = $this->apiServerUrl."?siteId=".( $params['siteId'] ? $params['siteId'] : "0" );
$resultString = "";
$result = array( );
$args = urlencode( $this->_encrypt( urlencode( $args ), $this->key ) );
if ( VIDEO_DEBUG )
{
echo "------------------------------------------------<br>";
echo "鍙戦佺殑鏁版嵁<br> url : {$url} <br>";
echo "data : ".$tmpArgs;
echo "<br>--------------------------------------------------<br>";
}
if ( function_exists( "curl_init" ) )
{
$resultString = $this->_postcurl( $url, $args );
}
else
{
$resultString = $this->_postsock( $url, $args );
}
if ( is_object( $resultString ) )
{
return $resultString;
}
if ( empty( $resultString ) )
{
return new videoclient_result( array(
"status" => 0 - 1,
"errMessage" => "鏈嶅姟鍣ㄦ暟鎹繑鍥炰负绌?,
"errCode" => 0 - 7
) );
}
$tmp = $resultString;
$decodeString = $this->_decrypt( $resultString, $this->key );
if ( $decodeString )
{
$resultString = $decodeString;
}
$resultString = urldecode( $resultString );
if ( VIDEO_DEBUG )
{
echo "------------------------------------------------<br>";
echo "鎺ユ敹鍒扮殑鏁版嵁<br>";
echo "encodeData : {$tmp} <br><br><br>";
echo "data : ".$resultString;
echo "<br>--------------------------------------------------<br><br>";
}
parse_str( $resultString, $result );
if ( !is_array( $result ) )
{
return new videoclient_result( array(
"status" => 0 - 1,
"errMessage" => "瀹㈡埛绔暟鎹В瀵嗗け璐?,
"errCode" => 0 - 8
) );
}
return new videoclient_result( $result );
}
function iserror( $result )
{
return $result['status'] != 0 || $result['status'] === NULL;
}
functi
上一篇:
inputmessage.php
下一篇:
致享和威驰哪个好点?冲着安全和空间 推荐致享