PHP获取各大视频网站页面中的Flash播放地址

 更新时间:2016年11月25日 17:27  点击:2218
有很多朋友做电影网站都是直接用大视频网站的flash播放地址了,这样如果我们不影响到自己网服务器,下面小编来给大家介绍一下利用PHP获取各大视频网站页面中的Flash播放地址实例。

先看一个简单的

然后我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能。

 贴一下关键代码:

 代码如下 复制代码

<?php

 //获取优酷页面中的flash地址
 function get_flash_url( $url )
 {
  $lines = file($url);
  foreach ($lines as $linenum=> $line) {      
      preg_match_all('|<input type="text" id="link2" value="([^<>]+)" />|',$line,$result);
      $swfurl=$result[1][0];
      if(!empty($swfurl))
    return $swfurl;
  }
 }
?>

<?php

 $url=$_SERVER["QUERY_STRING"];
 
 $flashurl= get_flash_url($url);
 
 echo ( $flashurl );
 
?>

比如这个文件我们存为 test.php,那么我们只需要运行 test.php?优酷视频的url 就可以解析出FLASH地址了。

 

思路很简单,就是先看看优酷视频网页的HTML代码里关键FLASH地址那段的特征。随便找个网页,比如我们可以看到这一段:

 代码如下 复制代码

<div class="item"><span class="label">flash地址: </span> <input type="text" id="link2" value="http://player.youku.com/player.php/sid/XMTU1MzcxMzAw/v.swf" />

然后使用正则表达式来将其中的地址段匹配掉,就OK了,上面只是单个的,后来找到一个升级的方法,可以自动获取各大视频网站flash视频播放地址。

目前已支持新浪播客、优酷网、土豆网、酷6网、搜狐视频、56网、奇艺网、凤凰网等视频网站的视频播放页链接。

 代码如下 复制代码
<?php
if (!empty($_GET['url']))
{
 $web_video = new free_flash_video();
 $web_video->index();
}
/**
 * 获取视频地址
 * @author qiufeng <fengdingbo@gmail.com>
 * @link http://www.fengdingbo.com
 *
 */
class free_flash_video{
 
 public function index()
 {
  // 获取正常视频地址
  $url = $_GET['url'];
  if ($url)
  {
   $parse = parse_url($url);
 
   isset($parse['host']) && $host = $parse['host'];
 
   $methods = array(
     "www.tudou.com"  => "tudou",
     "v.youku.com"  => "youku",
     "v.ku6.com"  => "ku6",
     "tv.sohu.com"  => "sohu",
     "video.sina.com.cn" => "sina",
     "www.56.com"  => "five_six",
     "www.iqiyi.com"  => "iqiyi",
     "v.ifeng.com"  => "ifeng",
     "www.yinyuetai.com" => "yinyuetai",
   );
 
   isset($methods[$host]) && print_r($this->$methods[$host]($url));
 
  }
 }
 
 /**
  * 优酷网
  * // http://www.youku.com
  * @param string $url
  */
 private function youku($url)
 {
  preg_match('/id_(.*).html/', $url,$url);
 
  if (isset($url[1]))
  {
   return "http://static.youku.com/v/swf/qplayer.swf?VideoIDS={$url[1]}&=&isAutoPlay=true&embedid";
  }
 }
 
 /**
  * 土豆网
  * // http://www.tudou.com
  * @param string $url
  */
 private function tudou($url)
 {
  $data = file_get_contents($url);
  // 匹配真实url地址所需的iid编号
 
  preg_match('/iid:(.*)/', $data, $result);
  if (isset($result[1]))
  {
   $url = trim($result[1]);
   return "http://www.tudou.com/player/skin/plu.swf?iid={$url}";
  }
 }
 
 /**
  * 酷6网
  * // http://www.ku6.com
  * @param string $url
  */
 private function ku6($url)
 {
  // 匹配真实url地址
  preg_match('/show/(.*).{1}/', $url, $result);
 
  if (isset($result[1]))
  {
   return "http://player.ku6.com/refer/{$result[1]}/v.swf&auto=1";
  }
 }
 
 /**
  * 搜狐视频
  * // http://tv.sohu.com
  * @param string $url
  */
 private function sohu($url)
 {
  $data = file_get_contents($url);
  // 匹配真实url地址
  preg_match('/<meta property="og:video" content="(.*)"/>/', $data, $result);
  if (isset($result[1]))
  {
   return $result[1];
  }
 }
 
 /**
  * 新浪播客
  * // http://video.sina.com.cn
  * @param string $url
  */
 private function sina($url)
 {
  $data = file_get_contents($url);
  // 匹配真实url地址
  preg_match("/swfOutsideUrl:'(.*)',/", $data, $result);
  if (isset($result[1]))
  {
   return $result[1];
  }
 }
 
 /**
  * 56网
  * // http://www.56.com
  * @param string $url
  */
 private function five_six($url)
 {
  // 取出视频所需key
  preg_match('/(v_.*).html/', $url, $result);
 
  if (isset($result[1]))
  {
   return "http://player.56.com/{$result[1]}.swf";
  }
 }
 
 /**
  * 奇艺网
  * // http://www.qiyi.com
  * @param string $url
  */
 private function iqiyi($url)
 {
  $data = file_get_contents($url);
 
  // 取出视频所需key
  preg_match('/("videoId":"(.*)")|(data-player-videoid="(.*)")/U', $data, $result);
 
  if (isset($result[4]))
  {
   return "http://www.iqiyi.com/player/20130315154043/SharePlayer.swf?vid={$result[4]}";
  }
 }
 
 /**
  * 凤凰网
  * // http://www.ifeng.com
  * @param string $url
  */
 private function ifeng($url)
 {
  // 取出视频所需key
  preg_match('/d+/(.*)./', $url, $result);
 
  if (isset($result[1]))
  {
   return "http://v.ifeng.com/include/exterior.swf?guid={$result[1]}&fromweb=sinaweibo&AutoPlay=true";
  }
 }
}
?>

PHP API调用实例

 代码如下 复制代码

/tools/web_video.php?url=视频页面地址
eg:/web_video.php?url=http://www.iqiyi.com/dianying/20130217/e72ffd87c2e9c5af.html

本文章来给大家介绍php 文件中随机取出一条数据实例,希望此教程对各位同学会有所帮助哦。
 代码如下 复制代码
<?php
//第一种方法:
$line = getrandline1('test.txt');
function getrandline1($filename)
{
 $linenum = 0;
 $fh = fopen($filename, 'r');
 while(!feof($fh))
 {
  if($rowcontents = fgets($fh))
  {
   $linenum++;
   $contens[] = $rowcontents;
  }
 }
 $randline = mt_rand(0, $linenum - 1);
 $line = $contens[$randline];
 fclose($fh);
 return $line;
}
 
//第二种方法:
$line = getrandline2('test.txt');
function getrandline2($filename)
{
 $contents = file('test.txt');
 $linenum = count($contents);
 $randline = mt_rand(0, $linenum - 1);
 $line = $contents[$randline];
 return $line;
}
 
//第三种方法:
$line = getrandline3('test.txt');
function getrandline3($filename)
{
 $contents = file('test.txt');
 shuffle($contents);
 return $contents[0];
}
 
//第四种方法:
$line = getrandline4('test.txt');
function getrandline4($filename)
{
 $linenum = 0;
 $fh = fopen($filename, 'r');
 while(!feof($fh))
 {
  if($linecontents = fgets($fh))
  {
   $linenum++;
                        $randint = (mt_rand(1, 1000000 * $linenum) - 1)/1000000);
   if($randint < 1)
   {
    $line = $linecontents;
   }
  }
 }
 fclose($fh);
 return $line;
}
?>
在网页开发中防止重复提交是一个比较实用并且也常用碰到的问题了,除了我们可以直接在数据库查询用户是否提交相同数据进行过滤外,我们还可以在用户提交数据时就防止这类事情发现,下面我来介绍基于session与cookies防重复提交一些基于实现方法。

防止刷新或再交提交

所以就考虑增加一个参数来防止这类情况的发生,COOKIE和SESSION可供选择,不过 COOKIE是客户端的,如果人家禁用COOKIE的话,照样可以恶意刷新点击数。还是用SESSION的好,IP+URL参数的MD5值做 SESSION名
实现原理 设置 max_reloadtime =100; //设置页面刷新最长间隔时间
用户第一次打开页面 记录当前的时间保存在 session_start
用户第二次打开页面(判断 session_start是否存在) 用当前时间和 session_start 相减 得到差值 time_passed
当 time_passed < max_reloadtime 表示用户在指定时间内频繁刷新了 警告后直接退出

 代码如下 复制代码

<?php 
    session_start(); 
    $k = $_GET['k']; 
    $t = $_GET['t']; 
    //防刷新时间 
    $allowTime = 1800; 
    $ip = get_client_ip(); 
    $allowT = md5($ip . $k . $t); 
    if (!isset($_SESSION[$allowT])) { 
       $refresh = true; 
       $_SESSION[$allowT] = time(); 
    } elseif (time() - $_SESSION[$allowT] > $allowTime) { 
       $refresh = true; 
       $_SESSION[$allowT] = time(); 
    } else { 
       $refresh = false; 
    } 
    ?>  


防表单重复提交

 代码如下 复制代码

 <?php   
    /* 改进版
    PHP防止用户刷新页面(Refresh or Reload),重复提交表单内容。
    由于表单变量的内容由$_POST['name']引用,也许在处理完表单后,直接将$_POST['name']销毁(unset())即可。其实不然。可能由于页面默认对表单内容进行了缓存,所以,即使销毁了$_POST['name'],刷新后,$_POST['name']还是会被赋值,一样有效。  
    可利用Session解决。首先给Session赋个值,比如400,第一次提交成功后改变Session的值,当第二次提交时去检查这个Session 的值,如果不是400,就不再处理表单中的数据。
    可设置Session的有效时间?   
    */ 
    if (isset($_POST['action']) && $_POST['action'] == ’submitted’) {      
         session_start();      
         isset($_SESSION['num']) or die ("no session");      
         if ($_SESSION['num']==400){      
                 print ‘<pre>’;      
                 print_r($_POST);      
                 print ‘<a href="’. $_SERVER['PHP_SELF'] .’">Please try again</a>’;      
                 print ‘</pre>’;      
                 $_SESSION['num']=500;      
         } else {      
                 print ‘<pre>’;      
                 print_r($_POST);      
                 echo "However you have submitted";      
                 print ‘</pre>’;      
         }      
    } else {      
         session_start() or die("session is not started");      
         $_SESSION['num']= 400;       
    ?>     
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">     
    Name: <input type="text" name="personal[name]"><br>     
    Email: <input type="text" name="personal[email]"><br>     
    Beer: <br>     
    <select multiple name="beer[]">     
         <option value="warthog">Warthog</option>     
         <option value="guinness">Guinness</option>     
         <option value="stuttgarter">Stuttgarter Schwabenbr</option>   
    </select><br>     
    <input type="hidden" name="action" value="submitted">     
    <input type="submit" name="submit" value="submit me!">     
    </form>     
    <?php     
    }      
    ?> 


例,一个基于smarty演示版

 代码如下 复制代码


$code = mt_rand(0,1000000);
setcookie('addtips',$code,time()+300);
if(isset($_POST['submit']) ){    
if($_COOKIE['addtips']!= $_POST['code']){            
  echo "请不要刷新本页面或重复提交表单";
exit();
}
}
$smarty->assign('code',$code);

10./////防止表单重复提交

在tpl模板中

 

 代码如下 复制代码

1. <input type="hidden" name="code" value="{$code}"/>

/*利用PHP的Session功能,也能避免PHP表单重复提交。Session保存在服务器端,在PHP运行过程中可以改变Session变量,下次访问这个变量时,得到的是新赋的值,所以,可以用一个Session变量记录表单提交的值,如果不匹配,则认为是用户在重复提交
*/


  session_start();//根据当前SESSION生成随机数  
  $code = mt_rand(0,1000000);  
   $_SESSION['code'] = $code;  
//在表单中隐藏传递:
   < input type="hidden" name="originator" value="< ?=$code?>">

//在接收页代码如下:


 session_start();  
  if(isset($_POST['originator'])) {  
   if($_POST['originator'] ==
   $_SESSION['code']){  
   // 处理该表单的语句,省略  
  }else{  
   echo ‘请不要刷新本页面或
   重复提交表单!’;  
  }  
  }

微信公众平台服务号可申请自定义菜单了,其它的号暂时不支持自定义菜单了,这个不但可以使用api来操作,还可以直接在后台定义菜单与参数哦。

申请自定义菜单

服务号可以申请自定义菜单;使用QQ登录的公众号,可以升级为邮箱登录;使用邮箱登录的公众号,可以修改登录邮箱;群发消息可以同步到腾讯微博。

微信公众平台升级:服务号可申请自定义菜单

微信公众平台账号api程序

 

 代码如下 复制代码

<?php
//define your token
define("TOKEN", "chenxiang");//改成自己的TOKEN
define('APP_ID', '');//改成自己的APPID
define('APP_SECRET', '');//改成自己的APPSECRET


$wechatObj = new wechatCallbackapiTest(APP_ID,APP_SECRET);
$wechatObj->Run();


class wechatCallbackapiTest
{
    private $fromUsername;
    private $toUsername;
    private $times;
    private $keyword;
    private $app_id;
    private $app_secret;
   
   
    public function __construct($appid,$appsecret)
    {
        # code...
        $this->app_id = $appid;
        $this->app_secret = $appsecret;
    }

    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    /**
     * 运行程序
     * @param string $value [description]
     */
    public function Run()
    {
        $this->responseMsg();
        $arr[]= "您好,这是自动回复,我现在不在,有事请留言,我会尽快回复你的^_^";
        echo $this->make_xml("text",$arr);
    }

    public function responseMsg()
    {  
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//返回回复数据
        if (!empty($postStr)){
                $access_token = $this->get_access_token();//获取access_token
                $this->createmenu($access_token);//创建菜单
                //$this->delmenu($access_token);//删除菜单
                $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $this->fromUsername = $postObj->FromUserName;//发送消息方ID
                $this->toUsername = $postObj->ToUserName;//接收消息方ID
                $this->keyword = trim($postObj->Content);//用户发送的消息
                $this->times = time();//发送时间
                $MsgType = $postObj->MsgType;//消息类型
                if($MsgType=='event'){
                    $MsgEvent = $postObj->Event;//获取事件类型
                    if ($MsgEvent=='subscribe') {//订阅事件
                        $arr[] = "你好,我是xxx,现在我们是好友咯![愉快][玫瑰]";
                        echo $this->make_xml("text",$arr);
                        exit;
                    }elseif ($MsgEvent=='CLICK') {//点击事件
                        $EventKey = $postObj->EventKey;//菜单的自定义的key值,可以根据此值判断用户点击了什么内容,从而推送不同信息
                        $arr[] = $EventKey;
                        echo $this->make_xml("text",$arr);
                        exit;
                    }
                }
        }else {
            echo "this a file for weixin API!";
            exit;
        }
    }

    /**
     * 获取access_token
     */

    private function get_access_token()
    {
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->app_id."&secret=".$this->app_secret;
        $data = json_decode(file_get_contents($url),true);
        if($data['access_token']){
            return $data['access_token'];
        }else{

            return "获取access_token错误";
        }
    }

    /**
     * 创建菜单
     * @param $access_token 已获取的ACCESS_TOKEN
     */
    public function createmenu($access_token)
    {
        $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;
        $arr = array(
            'button' =>array(
                array(
                    'name'=>urlencode("生活查询"),
                    'sub_button'=>array(
                        array(
                            'name'=>urlencode("天气查询"),
                            'type'=>'click',
                            'key'=>'VCX_WEATHER'
                        ),
                        array(
                            'name'=>urlencode("身份证查询"),
                            'type'=>'click',
                            'key'=>'VCX_IDENT'
                        )
                    )
                ),
                array(
                    'name'=>urlencode("轻松娱乐"),
                    'sub_button'=>array(
                        array(
                            'name'=>urlencode("刮刮乐"),
                            'type'=>'click',
                            'key'=>'VCX_GUAHAPPY'
                        ),
                        array(
                            'name'=>urlencode("幸运大转盘"),
                            'type'=>'click',
                            'key'=>'VCX_LUCKPAN'
                        )
                    )
                ),
                array(
                    'name'=>urlencode("我的信息"),
                    'sub_button'=>array(
                        array(
                            'name'=>urlencode("关于我"),
                            'type'=>'click',
                            'key'=>'VCX_ABOUTME'
                        ),
                        array(
                            'name'=>urlencode("工作信息"),
                            'type'=>'click',
                            'key'=>'VCX_JOBINFORMATION'
                        )
                    )
                )
            )
        );
        $jsondata = urldecode(json_encode($arr));
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_POST,1);
        curl_setopt($ch,CURLOPT_POSTFIELDS,$jsondata);
        curl_exec($ch);
        curl_close($ch);

    }

    /**
     * 查询菜单
     * @param $access_token 已获取的ACCESS_TOKEN
     */
   
    private function getmenu($access_token)
    {
        # code...
        $url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".$access_token;
        $data = file_get_contents($url);
        return $data;
    }

    /**
     * 删除菜单
     * @param $access_token 已获取的ACCESS_TOKEN
     */
   
    private function delmenu($access_token)
    {
        # code...
        $url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$access_token;
        $data = json_decode(file_get_contents($url),true);
        if ($data['errcode']==0) {
            # code...
            return true;
        }else{
            return false;
        }

    }
       
    /**
     *@param type: text 文本类型, news 图文类型
     *@param value_arr array(内容),array(ID)
     *@param o_arr array(array(标题,介绍,图片,超链接),...小于10条),array(条数,ID)
     */
   
    private function make_xml($type,$value_arr,$o_arr=array(0)){
        //=================xml header============
        $con="<xml>
                    <ToUserName><![CDATA[{$this->fromUsername}]]></ToUserName>
                    <FromUserName><![CDATA[{$this->toUsername}]]></FromUserName>
                    <CreateTime>{$this->times}</CreateTime>
                    <MsgType><![CDATA[{$type}]]></MsgType>";
                   
          //=================type content============
        switch($type){
         
            case "text" :
                $con.="<Content><![CDATA[{$value_arr[0]}]]></Content>
                    <FuncFlag>{$o_arr}</FuncFlag>"; 
            break;
           
            case "news" :
                $con.="<ArticleCount>{$o_arr[0]}</ArticleCount>
                     <Articles>";
                foreach($value_arr as $id=>$v){
                    if($id>=$o_arr[0]) break; else null; //判断数组数不超过设置数
                    $con.="<item>
                         <Title><![CDATA[{$v[0]}]]></Title>
                         <Description><![CDATA[{$v[1]}]]></Description>
                         <PicUrl><![CDATA[{$v[2]}]]></PicUrl>
                         <Url><![CDATA[{$v[3]}]]></Url>
                         </item>";
                }
                $con.="</Articles>
                     <FuncFlag>{$o_arr[1]}</FuncFlag>"; 
            break;
           
        } //end switch
         
         //=================end return============
        $con.="</xml>";
        
        return $con;
    }

 

 

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];   
               
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
       
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

?>

要利用php获取文章中所有图片中第一张图片出来我们只需要简单的正则表达式即可实现了,下面小编来给大家分享两个实例吧。

首先看一个函数:

 代码如下 复制代码

function getpic($str_img){
    preg_match_all("/<img.*>/isU",$str,$ereg);//正则表达式把图片的整个都获取出来了
    $img=$ereg[0][0];//图片
    $p="#src=('|")(.*)('|")#isU";//正则表达式
    preg_match_all ($p, $img, $img1);
    $img_path =$img1[2][0];//获取第一张图片路径 
    return $img_path;
    }
//假如数据库已打开,用$nr获取数据库中的新闻内容
$nr=$row_news["nr"];
$aa=getpic($nr_a);
if(!$aa){$aa="images/nopic.jpg";} //如果新闻中不存在图片,用默认的nopic.jpg替换

再看一个函数相对比较复杂了

在做项目的时候,页面的设计有时会留有文章特色图像的位置,可是有时,这篇文章反而没有上传图片,则在页面中显示的时候则是没有图片,样式上很难看,如果单纯是没有上传图片选用默认图片的时候,有时会引起一些误解;则在考虑是不是先对这个文章图片的问题细化处理:先判断是否有上传的图片,如果有则显示上传的图片,没有则判断内容中是否有图片,有则选取第一张图片作为此处的特色图片,如果连内容中也没有图片的话,则在此处显示默认图片;

以下是关于选取文章中第一张图片的代码:

 代码如下 复制代码

$obj=M("News");
$info=$obj->where('id=1')->find();
//方法1*********

            $soContent = $info['content'];
            $soImages = '~<img [^>]* />~';
            preg_match_all( $soImages, $soContent, $thePics );
            $allPics = count($thePics[0]);
            preg_match('/<img.+src="?(.+.(jpg|gif|bmp|bnp|png))"?.+>/i',$thePics[0][0],$match);
            dump($thePics);
            if( $allPics> 0 ){
                echo "<img src='".$match[1]."' title='".$match[1]."'>";//获取的图片名称
            }
            else {
                echo "没有图片";
            }

//**************

            $soContent = $info['content'];
            $soImages = '~<img [^>]* />~';
            preg_match_all( $soImages, $soContent, $thePics );
            $allPics = count($thePics[0]);
            dump($thePics);
            if( $allPics> 0 ){
                echo $thePics[0][0]; //获取的整个Img属性
            } else {
                echo "没有图片";
            }

//**************

            $soImages = '~<img [^>]* />~';
            $str=$info['content'];
            preg_match_all($soImages,$str,$ereg);//正则表达式把图片的整个都获取出来了
            $img=$ereg[0][0];//图片
            $p="#src=('|")(.*)('|")#isU";//正则表达式
            preg_match_all ($p, $img, $img1);
               $img_path =$img1[2][0];//获取第一张图片路径
            if(!$img_path){
                $img_path="images/nopic.jpg";
            } //如果新闻中不存在图片,用默认的nopic.jpg替换 */
            echo $img_path;

//*************88

            $str=$info['content'];
            preg_match_all("/<img.*>/isU",$str,$ereg);//正则表达式把图片的整个都获取出来了
            $img=$ereg[0][0];//图片
            $p="#src=('|")(.*)('|")#isU";//正则表达式
            preg_match_all ($p, $img, $img1);
               $img_path =$img1[2][0];//获取第一张图片路径
            if(!$img_path){
                $img_path="images/nopic.jpg";
            } //如果新闻中不存在图片,用默认的nopic.jpg替换 */
            echo $img_path;

[!--infotagslink--]

相关文章

  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • php获取一个文件夹的mtime的程序

    php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • jquery如何获取元素的滚动条高度等实现代码

    主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
  • jquery获取div距离窗口和父级dv的距离示例

    jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
  • Jquery 获取指定标签的对象及属性的设置与移除

    1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
  • mac下Apache + MySql + PHP搭建网站开发环境

    首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷。可也许因为我懒吧,我是那种“既然有现成的,用就是了”的人。君子生非异也,善假于物也。两千年前的荀子就教导我们,要善于利用工具...2014-06-07
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • DOM XPATH获取img src值的query

    复制代码 代码如下:$nodes = @$xpath->query("//*[@id='main_pr']/img/@src");$prurl = $nodes->item(0)->nodeValue;...2013-10-04
  • jquery获取tagName再进行判断

    如果是为了取到tagName后再进行判断,那直接用下面的代码会更方便: $(element).is('input') 如果是要取到标签用作到别的地方,可以使用一下代码: $(element)[0].tagName 或: $(element).get(0).tagName...2014-05-31
  • PHP 如何获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序。这是中国人大多数使用的排序方法。那么在php程序中该如何操作呢?下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的...2015-10-23
  • 使用C#获取系统特殊文件夹路径的解决方法

    本篇文章是对使用C#获取系统特殊文件夹路径的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • 网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例

    网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10
  • php如何获取文件的扩展名

    网上也有很多类似的方法,不过都存在这样那样的不严谨的问题,本文就不一一分析了,这里只给出最正确的利用php 获取文件扩展名(文件后缀名)的方法。 function get_extension($filename){ return pathinfo($filename,PATHIN...2015-10-30
  • 基于JavaScript获取鼠标位置的各种方法

    这篇文章主要介绍了基于JavaScript获取鼠标位置的各种方法 ,需要的朋友可以参考下...2015-12-18
  • C#获取变更过的DataTable记录的实现方法

    这篇文章主要介绍了C#获取变更过的DataTable记录的实现方法,对初学者很有学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • 如何获取百度搜索结果页中解密之后的真实链接

    大家用百度搜索的时候,可能会发现,结果链接用的还是百度的链接,点击之后才会跳转到另外一个页面,另外一个页面的真实链接如何获取到呢?? 通过分析发现: 可以看出,返回...2016-05-19