当前位置:  编程技术>php
本页文章导读:
    ▪PHP开发API接口(注册、登录、查询用户信息)的实例代码      本节主要内容: php开发API接口的实现代码 一、PHP API接口的服务端部分   代码示例: <?php /** * PHP开发API接口 服务端 * edit: www. */ require 'conn.php';  header('Content-Type:text/html;charset=utf-8'); .........
    ▪php Curl抓取远程内容出现url中文编码问题的解决方法      问题描述: PHP中对于URL进行编码,可以使用 urlencode() 或 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20'。 注意:在编码时应该只对部分URL编码,否则URL中的冒号.........
    ▪PHP多关键字、多字段生成SQL语句的函数      本节主要内容: php、mysql中构造多关键字、多字段的sql查询语句。 例子:   代码示例: $keyword="1 2 3"; echo $sql=search($keyword,"enter_gongyin_pic","a+b+c"); //函数生成,没有LIMIT,没有ORDER BY   生成sql.........

[1]PHP开发API接口(注册、登录、查询用户信息)的实例代码
    来源: 互联网  发布时间: 2013-12-24

本节主要内容:
php开发API接口的实现代码

一、PHP API接口的服务端部分
 

代码示例:
<?php
/**
* PHP开发API接口 服务端
* edit: www.
*/
require 'conn.php'; 
header('Content-Type:text/html;charset=utf-8'); 
 
$action = $_GET['action']; 
switch ($action) { 
 
    //注册会员 
    case"adduserinfo"; 
        $username = lib_replace_end_tag(trim($_GET['username'])); 
        $password2 = lib_replace_end_tag(trim($_GET['userpassword'])); 
        $password = md5("$password2" . ALL_PS); 
        $email = lib_replace_end_tag(trim($_GET['email'])); 
 
        if ($username == '' || $password2 == '' || $password == '') { 
            $res = urlencode("参数有误"); 
            exit(json_encode($res)); //有空信息 
        } 
 
        $sql = "select username from `member` where username='$username'"; 
        $query = mysql_query()($sql, $conn); 
        $count = mysql_num_rows($query); 
 
        if ($count > 0) { 
            exit(json_encode(1)); //返回1表示注册失败 
        } else { 
 
            $addsql = "insert into `member` (username,password,email) values ('$username','$password','$email')"; 
            mysql_query($addsql); 
            exit(json_encode(0)); //返回0表示注册成功 
        } 
        break; 
 
 
    //查询用户信息 
    case"selectuserinfo"; 
        $username = lib_replace_end_tag($_GET['username']); 
        $sql = "select id,username,nickname,mobile from `member` where username='$username'"; 
        $query = mysql_query($sql, $conn); 
        $row = mysql_fetch_array($query); 
        foreach ($row as $key => $v) { 
            $res[$key] = urlencode($v); 
        } 
        exit(json_encode($res)); 
        break;
    //会员登录 
    case"userlogin"; 
        $username = lib_replace_end_tag($_GET['username']); 
        $password2 = lib_replace_end_tag(trim($_GET['userpassword'])); 
        $password = md5("$password2" . ALL_PS); 
        $sqluser = "select id,username,password from `member` where username='" . $username . "' and password='" . $password . "'"; 
        $queryuser = mysql_query($sqluser); 
        $rowuser = mysql_fetch_array($queryuser); 
        if ($rowuser && is_array($rowuser) && !empty($rowuser)) { 
            if ($rowuser['username'] == $username && $rowuser['password'] == $password) { 
                if ($rowuser['password'] == $password) { 
                    $res = urlencode("登录成功"); 
                    exit(json_encode($res)); 
                } else { 
                    $res = urlencode("密码错误"); 
                    exit(json_encode($res)); 
                } 
            } else { 
                $res = urlencode("用户名不存在"); 
                exit(json_encode($res)); 
            } 
        } else { 
            $res = urlencode("用户名密码错误"); 
            exit(json_encode($res)); 
        } 
        /*
         * 0:表示登录成功,1:表示密码错误,2:用户名不存在,3:用户名密码错误
         */ 
        break; 
 
    default: 
        exit(json_encode(error)); 

?>

二、PHP API 客户端部分
 

代码示例:
<?php
/**
* PHP API接口 客户端
* edit: www.
*/
header('Content-Type:text/html;charset=utf-8'); //避免输出乱码 
 
function httpPost($url, $parms) { 
    $url = $url . $parms; 
    if (($ch = curl_init($url)) == false) { 
        throw new Exception(sprintf()("curl_init error for url %s.", $url)); 
    } 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    if (is_array($parms)) { 
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data;')); 
    } 
    $postResult = @curl_exec($ch); 
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    if ($postResult === false || $http_code != 200 || curl_errno($ch)) { 
        $error = curl_error($ch); 
        curl_close($ch); 
        throw new Exception("HTTP POST FAILED:$error"); 
    } else { 
        // $postResult=str_replace()("\xEF\xBB\xBF", '', $postResult); 
        switch (curl_getinfo($ch, CURLINFO_CONTENT_TYPE)) { 
            case 'application/json': 
                $postResult = json_decode()($postResult); 
                break; 
        } 
        curl_close($ch); 
        return $postResult; 
    } 

$postUrl = "http://pujia.test.com/api/server.php"; 
 
$p=$_GET['p']; 
if ($p =="selectuserinfo") { 
 
    $username = $_GET['username']; 
    $parms = "?action=selectuserinfo&username=" . $username . ""; 
 
} elseif ($p =="adduserinfo") { 
 
    $username = $_GET['username']; 
    $userpassword = $_GET['userpassword']; 
    $parms = "?action=adduserinfo&username=" . $username . "&userpassword=" . $userpassword . ""; 
 
} elseif ($p =="userlogin") { 
    $username = $_GET['username']; 
    $userpassword = $_GET['userpassword']; 
    $parms = "?action=userlogin&username=" . $username . "&userpassword=" . $userpassword . ""; 
 

$res = httpPost($postUrl, $parms); //$parms 
$res = json_decode($res); 
print_r(urldecode(json_encode($res))); 
?>

    
[2]php Curl抓取远程内容出现url中文编码问题的解决方法
    来源: 互联网  发布时间: 2013-12-24

问题描述:
PHP中对于URL进行编码,可以使用 urlencode() 或 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20'。
注意:在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。

详细解释:
string urlencode( string str) 
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

例1,urlencode函数与rawurlencode函数区别
 

代码示例:
<?php
$str='博 客'; 
echo urlencode($str); 
echo " 
"; 
echo rawurlencode($str); 

url结果:
 

%B2%A9+%BF%CD 
%B2%A9%20%BF%CD

例2,url中文编码方法
 

代码示例:
从url:"http://www.baidu.com/s?wd=博 客" 转为 url:"http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2";
$url='http://www.baidu.com/s?wd=博 客'; 
$arr=explode()('=',$url); 
$url=$arr[0].'='.rawurlencode($arr[1]); 
echo $url; 

结果:
http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2

或使用url编码函数
 

代码示例:
function cn_urlencode($url){ 
     $pregstr = "/[\x{4e00}-\x{9fa5}]+/u";//UTF-8中文正则 
    if(preg_match_all($pregstr,$url,$matchArray)){//匹配中文,返回数组 
        foreach($matchArray[0] as $key=>$val){ 
            $url=str_replace()($val, urlencode($val), $url);//将转译替换中文 
        } 
        if(strpos($url,' ')){//若存在空格 
            $url=str_replace(' ','%20',$url); 
        } 
    } 
    return $url; 

 

url结果:
http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2


    
[3]PHP多关键字、多字段生成SQL语句的函数
    来源: 互联网  发布时间: 2013-12-24

本节主要内容:
php、mysql中构造多关键字、多字段的sql查询语句。

例子:
 

代码示例:
$keyword="1 2 3";
echo $sql=search($keyword,"enter_gongyin_pic","a+b+c"); //函数生成,没有LIMIT,没有ORDER BY
 

生成sql语句:
 

代码示例:
SELECT * FROM `enter_gongyin_pic` WHERE `a` LIKE '%1%' OR `a` LIKE '%2%' OR `a` LIKE '%3%' OR `b` LIKE '%1%' OR `b` LIKE '%2%' OR `b` LIKE '%3%' OR `c` LIKE '%1%' OR `c` LIKE '%2%' OR `c` LIKE '%3%'

$keyword由POST或者GET获得,按空格分开,可以多字段去查找.

多关键字、多字段生成sql查询语句的函数:
 

代码示例:

<?php
/**
* 查询条件构造语句
* edit: www.
*/
function search($keyword,$table,$field) 

/**
//形参说明: 
//keyword为关键字,如“北京首都 方向 火车”。带有空格或者不带 
//table为表名,如enter_gongyin_pic。 
//field为字段组合,如查找一个字段就写好 name  
//如查找两个以上就用 name+picdir 
*/
//首先确定field 
$new_field=explode()("+",$field); //按+剥离 
$field_count=count($new_field); //得到的结果数量 
 
 
$newstring=explode(" ",$keyword); //按空格剥离 
$newstring2=array(); 
   //把字符串去掉没有用的空格叔祖元素 
   $i=0; 
   foreach ($newstring as $key => $value) { 
   if($value!="") 
   { 
   $newstring2[$i]=$value; 
   $i++; 
   } 
   } 
//把字符串去掉没有用的空格叔祖元素, 
         
$result_count=count($newstring2); //得到的结果数量 
 
//生成SQL语句
//* if($field_count==1) //找1个字段 START ** 
if($field_count==1) //找1个字段 

if($result_count==1) //判断如果是一个关键段 
   { 
   $newstring_search=$newstring2[0]; 
$sql="SELECT *  
FROM `$table`  
WHERE `".$new_field[0]."` LIKE '%$newstring_search%'"; 
   } 
      
   if($result_count>1) //判断如果是多个关键段 
   { 
 
$sql="SELECT *  
FROM `$table`  
WHERE "; 
$sql_add=""; 
foreach ($newstring2 as $key => $value) 

  if($key==0) 
   { 
   $sql_add=$sql_add."`".$new_field[0]."` LIKE '%".$value."%'"; 
   } 
   else 
   { 
   $sql_add=$sql_add." OR `".$new_field[0]."` LIKE '%".$value."%'"; 

$sql=$sql.$sql_add; 
}

//***** if($field_count==1) //找1个字段 END ****** 
//**** if($field_count>1) //找多个字段 START ***** 
if($field_count>1) //找多个字段,这个时候$new_field是一个数组。拥有多个字段 

if($result_count==1) //判断如果是一个关键段 

        $newstring_search=$newstring2[0]; //$newstring_search是关键字 
        $sql="SELECT *  
        FROM `$table`  
        WHERE "; 
        $sql_add="";//新增加字段 
        foreach ($new_field as $key => $value) 
        { 
                        if($key==0) 
                        { 
                        $sql_add=$sql_add."`".$value."` LIKE '%".$newstring_search."%'"; 
                        } 
                        else 
                        { 
                        $sql_add=$sql_add." OR `".$value."` LIKE '%".$newstring_search."%'"; 
                        } 
        } 
        $sql=$sql.$sql_add; 

if($result_count>1) //判断如果是多个关键段(多个关键字)=== 

$sql="SELECT *  
FROM `$table`  
WHERE "; 
$sql_add="";//新增加字段 
foreach ($new_field as $key => $value) 

  if($key==0) //遇到$new_field[0]时候 例:`a` LIKE '%1%' OR `a` LIKE '%2%' OR `a` LIKE '%3%' 
   { //嵌套foreach 
     foreach ($newstring2 as $key2 => $value2) 
      { 
                  if($key2==0) 
                   { 
                        $sql_add=$sql_add."`".$value."` LIKE '%".$value2."%'"; 
                   } 
                   else 
                   { 
                   $sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'"; 
                   } 
        } 
    //嵌套foreach 
   } 
   else  
   //(如果是多字段的比如查name+picdir表)开始FOREACH连续循环,每次执行ELSE $new_field[1] $new_field[2] $new_field[3]。 
   //对应的值为$value 
  { 
   //嵌套foreach(多字段与多关键字) 
   foreach ($newstring2 as $key2 => $value2) 
      { 
                  if($key2==0) 
                   { 
                        $sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'"; 
                   } 
                   else 
                   { 
                   $sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'"; 
                   } 
           } 
   //嵌套foreach 
   } 
         
}//foreach ($new_field as $key => $value)结束 
$sql=$sql.$sql_add; 
}//if($result_count>1)结束 
}//if($field_count>1) 结束 
//*** if($field_count>1) //找多个字段 END *** 
return $sql; 
}


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪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