当前位置:  编程技术>php
本页文章导读:
    ▪php调用yahoo sina api天气预报的实现代码      1,yahoo 天气预报 地址 http://developer.yahoo.com/weather/ 代码:   代码示例: <?php header ( 'Content-Type: text/html; charset = utf-8' ); class weather {     static $url = 'http://xml.weather.yahoo.com/forecastrss?u=c&w=.........
    ▪php获取youku视频最终地址的方法      php取得youku视频最终地址的实现代码。 例子:   代码示例: <?php /** * 取得youku视频的最终地址 * edit by www. * at: 2013-10-2 */ class YoukuFlv{     static private $error   =   "";     static priva.........
    ▪php实例之取得路径与文件名      例1,使用basename、dirname函数取得文件与路径名。   代码示例: <?php $full_name = '/usr/local/php/php.ini'; $base = basename($full_name);  // $base is "php.ini" $dir  = dirname($full_name);   // $dir is "/usr/local/php" .........

[1]php调用yahoo sina api天气预报的实现代码
    来源: 互联网  发布时间: 2013-12-24

1,yahoo 天气预报
地址 http://developer.yahoo.com/weather/

代码:
 

代码示例:
<?php
header ( 'Content-Type: text/html; charset = utf-8' );
class weather {
    static $url = 'http://xml.weather.yahoo.com/forecastrss?u=c&w=';
    static $city = 'Beijing'; //默认城市北京 这里要注意的是 city 要填拼音 我试过用中文有好几个地区都调用不到
    static $weatherXML = '';
        static $woeid_file   =   "woeid";
    static $file_path   =   "data/";
        
    /**
      * 获得远程xml并缓存到本地
      */
    static public function getXML($city = null) {
 
      if ($city != null){
            self::$city = $city;
      }
      self::$weatherXML =  self::$file_path .   md5(self::$city) . '-weather.xml';
      if (file_exists( self::$weatherXML )) {         
           $fileTime = filemtime ( self::$weatherXML );
           $stater = time () - $fileTime - 60 * 60 * 2;
       if ($stater > 0) {
           return true;        
       }      
      }       
          //获取woeid
          $woeid    =   self::getWOEID();    
          self::$url    = self::$url . $woeid[0];
          //获取当天 天气
          $XML  = self::vget(self::$url);    
          //保存当天 天气到文件
          self::cacheXML($XML);
          
          self::analysisXML($XML);
    } 
        
        static public function analysisXML($simple) {   
            
                $p = xml_parser_create();
                
                xml_parse_into_struct($p, $simple, $vals, $index);
                
                xml_parser_free($p);              
                
                //本周天气
                $weekindex  =   $index['YWEATHER:FORECAST'];
                $week       =   array();
                foreach($weekindex as $k=>$v){
                    $week[$k]   =  $vals[$v]['attributes'];
                }
                unset($index);
                unset($vals);
                print_r($week);
               /*
                <yweather:forecast day="Wed" date="18 Sep 2013" low="20" high="32" text="Sunny" code="32"/>
                * day 星期
                * date 日期
                * low 最低温度
                * high 最高温度
                * test 天气状态
                * code 天气图标
                */
        }
        /*
         * 取得地区WOEID码
         */      
        static private function getWOEID(){           
            static $woeid  =   array();
            
            if(isset()($woeid[self::$city])){
                return $woeid[self::$city];
            }
            
            if (file_exists( self::$file_path . self::$woeid_file )) {
                $woeidSTR =    file_get_contents(self::$file_path . self::$woeid_file);               
                $woeid  =   json_decode()($woeidSTR , true);               
                if(isset($woeid[self::$city])){
                    return $woeid[self::$city];
                }
            }
            $geoPlaces    =   "http://query.yahooapis.com/v1/public/yql?q=select%20woeid%20from%20geo.places%20where%20text='".self::$city."%20CH'"; 
            
            $XML    =   simplexml_load_file( $geoPlaces );          
 
            if(isset($XML->results->place[0])){
                $rs = $woeid[self::$city] =   $XML->results->place[0]->woeid;
                //保存到文件
                $woeidSTR   =  json_encode($woeid);
                file_put_contents(self::$file_path . self::$woeid_file, $woeidSTR);               
                return $rs;               
            }else{
                //如果找不到城市 woeid 默认城市就改为 北京
                self::$city =    "Beijing";
                
                return self::getWOEID();
            }           
        }
    /**
      * 创建xml缓存
      * @param $contents 要缓存的内容
      */
    static private function cacheXML($contents) {
        $contents = str_ireplace ( '<?xml version="1.0"?>', "<?xml version=\"1.0\"?> \n", $contents );
        $contents = mb_convert_encoding ( $contents, 'utf-8', 'gbk' );
        file_put_contents ( self::$weatherXML, $contents ) or die ( '没有写权限' );
    }
        /**
         * 模拟获取内容函数
         * @param type $url
         * @return type
         */
         
        static private function vget($url) {
           $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
            $curl = curl_init (); // 启动一个CURL会话
            curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址
            curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查
            curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在
            curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent ); // 模拟用户使用的浏览器
            @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转
            curl_setopt ( $curl, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer
            curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的Post请求       
            curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环
            curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 显示返回的Header区域内容
            curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回
            $tmpInfo = curl_exec ( $curl ); // 执行操作
            if (curl_errno ( $curl )) {
                curl_close ( $curl ); // 关闭CURL会话
                die('Errno' . curl_error ( $curl )) ;
            }
            curl_close ( $curl ); // 关闭CURL会话
            return $tmpInfo; // 返回数据
        }
}
weather::getXML("Changsha");

2,新浪天气
地址:http://php.weather.sina.com.cn
代码:
 

代码示例:
<?php
header ( 'Content-Type: text/html; charset = utf-8' );
 
class weather {
    static $url = 'http://php.weather.sina.com.cn/xml.php?password=DJOYnieT8234jlsK&day=0&city=';//password是固定值
    static $city = '%B1%B1%BE%A9'; //默认城市北京
    static $weatherXML = '';
    static $file_path   =   "data/";
    /**
      * 获得远程xml并缓存到本地
      */
    static public function getXML($city = null) {
 
      if ($city != null){
            $city = mb_convert_encoding ( $city, 'gbk', 'utf-8' );
            self::$city = urlencode($city);
      }
      self::$weatherXML =  self::$file_path .   md5(self::$city) . '-weather.xml';
          
      if (file_exists( self::$weatherXML )) {         
           $fileTime = filemtime ( self::$weatherXML );
           $stater = time () - $fileTime - 60 * 60 * 2;
       if ($stater > 0) {
           return true;        
       }      
      }
          
          $contents =   self::vget( self::$url . self::$city );  
          
      self::cacheXML ( $contents );
          
          self::analysisXML();
          
    }
    /**
      * 解析xml
      */
    static public function analysisXML() {            
            
                $XML    =   simplexml_load_file(self::$weatherXML );   
                print_r($XML);
    }
    
    /**
      * 创建xml缓存
      * @param $contents 要缓存的内容
      */
    static private function cacheXML($contents) {
        $contents = str_ireplace ( '<?xml version="1.0"?>', "<?xml version=\"1.0\"?> \n", $contents );
        file_put_contents ( self::$weatherXML, $contents ) or die ( '没有写权限' );
    }
        /**
         * 模拟获取内容函数
         * @param type $url
         * @return type
         */
         
        static private function vget($url) {
            $user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)";
            $curl = curl_init (); // 启动一个CURL会话
            curl_setopt ( $curl, CURLOPT_URL, $url ); // 要访问的地址
            curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, 0 ); // 对认证证书来源的检查
            curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, 1 ); // 从证书中检查SSL加密算法是否存在
            curl_setopt ( $curl, CURLOPT_USERAGENT, $user_agent ); // 模拟用户使用的浏览器
            @curl_setopt ( $curl, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转
            curl_setopt ( $curl, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer
            curl_setopt ( $curl, CURLOPT_HTTPGET, 1 ); // 发送一个常规的Post请求
            curl_setopt ( $curl, CURLOPT_TIMEOUT, 120 ); // 设置超时限制防止死循环
            curl_setopt ( $curl, CURLOPT_HEADER, 0 ); // 显示返回的Header区域内容
            curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 ); // 获取的信息以文件流的形式返回
            $tmpInfo = curl_exec ( $curl ); // 执行操作
            if (curl_errno ( $curl )) {
                curl_close ( $curl ); // 关闭CURL会话
                die('Errno' . curl_error ( $curl )) ;
            }
            curl_close ( $curl ); // 关闭CURL会话
            return $tmpInfo; // 返回数据
        }
}
weather::getXML();

您可能感兴趣的文章:

php 天气预报代码一例
php调用google天气api的实例代码
Google API 获取当前天气信息的php代码

    
[2]php获取youku视频最终地址的方法
    来源: 互联网  发布时间: 2013-12-24

php取得youku视频最终地址的实现代码。
例子:
 

代码示例:

<?php
/**
* 取得youku视频的最终地址
* edit by www.
* at: 2013-10-2
*/
class YoukuFlv{
    static private $error   =   "";
    static private $result  =   array();
 
    static public function getYoukuFlv($url){
        //从url获取youkuid
        if(! $id    =   self::getYoukuId($url)){
            return false;
        }
        //获取youku视频详细信息
        $content    =   self::get_curl_contents( "http://v.youku.com/player/getPlayList/VideoIDS/".$id );
        $data   =   json_decode()($content);
        if(!isset()($data->data[0]->streamfileids)){
            self::$error    =   "Cannot find this video";
            return false;
        }
        foreach($data->data[0]->streamfileids AS $k=>$v){
            if($k == 'flv' || $k == 'mp4'){        
                //sid
                $sid=   self::getSid();
                //fileid
                $fileid =   self::getfileid($v,$data->data[0]->seed);
                $one=($data->data[0]->segs->$k);
                self::$result[$k]   = "http://f.youku.com/player/getFlvPath/sid/{$sid}_00/st/{$k}/fileid/{$fileid}?K={$one[0]->k}";
            }
        }
        if(empty(self::$result)){
            self::$error    =   "THIS VIOD IS NOT IN MP4 OR FLV FORMAT";
            return false;
        }else{
            return true;
        }
    }
    static public function error(){
        return self::$error;
    }
 
    static public function result(){
        return self::$result;
    }
 
    static private function getYoukuId($url){      
        //url 不能为空
        if($url == "" || substr($url , 0 , 29) != "http://v.youku.com/v_show/id_"){
            self::$error    =   "URL IS ERROR";
            return false;
        }
        return substr($url , 29 , -5);     
    }
 
    static private function get_curl_contents($url, $second = 5){
        if(!function_exists('curl_init')) die('php.ini未开启php_curl.dll');
        $c = curl_init();
        curl_setopt($c,CURLOPT_URL,$url);
        $UserAgent=$_SERVER['HTTP_USER_AGENT'];
        curl_setopt($c,CURLOPT_USERAGENT,$UserAgent);
        curl_setopt($c,CURLOPT_HEADER,0);
        curl_setopt($c,CURLOPT_TIMEOUT,$second);
        curl_setopt($c,CURLOPT_RETURNTRANSFER, true);
        $cnt = curl_exec($c);
        curl_close($c);
        return $cnt;
    }
    static private function getSid() {
        $sid = time().(rand(0,9000)+10000);
        return $sid;
    }
    static private function getfileid($fileId,$seed) {
        $mixed = self::getMixString($seed);
        $ids = explode()("*",$fileId);
        unset($ids[count($ids)-1]);
        $realId = "";
        for ($i=0;$i < count($ids);++$i) {
            $idx = $ids[$i];
            $realId .= substr($mixed,$idx,1);
        }
        return $realId;
    }
    static private function getMixString($seed) {
        $mixed = "";
        $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
        $len = strlen($source);
        for($i=0;$i< $len;++$i){
            $seed = ($seed * 211 + 30031) % 65536;
            $index = ($seed / 65536 * strlen($source));
            $c = substr($source,$index,1);
            $mixed .= $c;
            $source = str_replace()($c, "",$source);
        }
        return $mixed;
    }
}
if(YoukuFlv::getYoukuFlv("http://v.youku.com/v_show/id_XNjEyOTE4NTEy_ev_1.html")){
    print_r( YoukuFlv::result() );
}else{
    echo YoukuFlv::error();
}

?>

另外一种调用方法:
http://player.youku.com/player.php/sid/XMjI0MDIwNDc2/v.swf
http://player.youku.com/player.php/sid/{$id}/v.swf


    
[3]php实例之取得路径与文件名
    来源: 互联网  发布时间: 2013-12-24

例1,使用basename、dirname函数取得文件与路径名。
 

代码示例:
<?php
$full_name = '/usr/local/php/php.ini';
$base = basename($full_name);  // $base is "php.ini"
$dir  = dirname($full_name);   // $dir is "/usr/local/php"
?>

例2,使用basename函数从路径中取得文件名。
 

代码示例:
<?php
   $path = "/home/www/data/users.txt";
   $filename = basename($path);
  
   print $filename;
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
浙ICP备11055608号-3 iis7站长之家
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3