当前位置:  编程技术>php
本页文章导读:
    ▪js中将字符串转换为json格式的三种方法      json在js的开发过程中经常会用到,像在使用ajax开发的项目过程中,经常需要将json格式的字符串返回到前端,前端解析成json对象。 下面为大家介绍下将字符串转换为json对象的三种常用的方法.........
    ▪Codeigniter处理用户登录验证后URL跳转的代码      Codeigniter处理用户登录验证后URL跳转的代码,涉及到My_Controller.php以及登录验证模块User.php。 文件:My_Controller.php   代码如下: <?php class MY_Controller extends CI_Controller {     public function __con.........
    ▪跨浏览器下PHP下载文件名中的中文乱码问题的解决方法      跨浏览器下PHP下载文件名中的中文乱码问题的解决方法,有需要的朋友可以看看。   代码如下: <?php $ua = $_SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename);.........

[1]js中将字符串转换为json格式的三种方法
    来源: 互联网  发布时间: 2013-12-24

json在js的开发过程中经常会用到,像在使用ajax开发的项目过程中,经常需要将json格式的字符串返回到前端,前端解析成json对象。

下面为大家介绍下将字符串转换为json对象的三种常用的方法:
方法一,最常用的eval方式解析
 

代码如下:
<?php
function strToJson(str){
var json = eval_r('(' + str + ')');
return json;
}?>

str两边的小括号不要忘记。
方法二,new Function形式
 

代码如下:
<?php
function strToJson(str){
var json = (new Function("return " + str))();
return json;
}?>

方法三,使用全局的JSON对象
 

代码如下:
<?php
function strToJson(str){
return JSON.parse(str);
}?>

目前在IE8(S)/Firefox3.5+/Chrome4/Safari4/Opera10 已实现了该方法。

使用JSON.parse需严格遵守JSON规范,如属性都需用引号引起来,如下:
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。而前两种方式则没问题。


    
[2]Codeigniter处理用户登录验证后URL跳转的代码
    来源: 互联网  发布时间: 2013-12-24

Codeigniter处理用户登录验证后URL跳转的代码,涉及到My_Controller.php以及登录验证模块User.php。
文件:My_Controller.php
 

代码如下:
<?php
class MY_Controller extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        /*判断是否登录,判断当前URL是否是auth/login*/
        if ( ! $this->tank_auth->is_logged_in()
                && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
        {
            $redirect = $this->uri->uri_string();
       
            if ( $_SERVER['QUERY_STRING'])
            {
                $redirect .= '?' . $_SERVER['QUERY_STRING'];
            }
            /*跳转到用户登陆页面,指定Login后跳转的URL*/
            redirect('auth/login?redirect='.$redirect);
        }   
    }
}
?>

文件:User.php
 

代码如下:

<?php
class User extends MY_Controller
{
    function login()
    {

        if ($this->tank_auth->is_logged_in()) {   // logged in
            redirect('/');

        } else {
            //other codes here......
            /*判断是否有redirect信息*/
            $data['redirect'] = isset()($_GET['redirect']) ? $_GET['redirect'] : '/';

            if ($this->form_validation->run()) {                                // validation ok
                if ($this->tank_auth->login(
                        $this->form_validation->set_value('login'),
                        $this->form_validation->set_value('password'),
                        $this->form_validation->set_value('remember'),
                        $data['login_by_username'],
                        $data['login_by_email'])) {                                // success
                    redirect($data['redirect']);

                } else {
                    //error handling
                }
            }
            $this->load->view("login_form")
        }
    }
/*
Note: 在login_form中需要注意,提交表单的form地址:
<?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?>
*/
}?>

在login_form中需要注意,提交表单的form地址:
 

代码如下:
<?php echo form_open(site_url("/auth/login?redirect=".$redirect)); ?>

    
[3]跨浏览器下PHP下载文件名中的中文乱码问题的解决方法
    来源: 互联网  发布时间: 2013-12-24

跨浏览器下PHP下载文件名中的中文乱码问题的解决方法,有需要的朋友可以看看。
 

代码如下:

<?php
$ua = $_SERVER["HTTP_USER_AGENT"];

$filename = "中文 文件名.txt";
$encoded_filename = urlencode($filename);
$encoded_filename = str_replace()("+", "%20", $encoded_filename);

header('Content-Type: application/octet-stream');

if (preg_match("/MSIE/", $ua)) {
    header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
} else if (preg_match("/Firefox/", $ua)) {
    header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');
} else {
    header('Content-Disposition: attachment; filename="' . $filename . '"');
}

print 'ABC';
?>
 

上面是一个比较通用的解决方案(据说xp+IE7会有问题,未验证)。

这个问题是在使用CI-Excel-Generation-Library时遇到的,解决办法:
 

代码如下:

<?php
private function set_headers() {
    $ua = $_SERVER["HTTP_USER_AGENT"];
    $filename = $this->filename . ".xls";
    $encoded_filename = urlencode($filename);
    $encoded_filename = str_replace("+", "%20", $encoded_filename);    

    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");

    //header("Content-Type: application/vnd.ms-excel;charset=UTF-8");
    header("Content-Type: application/download");;
    if (preg_match("/MSIE/", $ua)) { 
        header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
    } else if (preg_match("/Firefox/", $ua)) { 
        header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');
    } else { 
        header('Content-Disposition: attachment; filename="' . $filename . '"');
   }
       header("Content-Transfer-Encoding: binary ");
   }
?>


    
最新技术文章:
▪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