当前位置:  编程技术>php
本页文章导读:
    ▪截取字符串并保留完整xml标签的php代码      截取字符串并保留完整xml标签的php代码,有需要的朋友可以参考下。   代码如下: <?php      /**      * author: goosman      * blog: http://blog.csdn.net/lgg201      * mail: lgg860911@yahoo.com.cn .........
    ▪存储用户ID和密码到mysql数据库的方法      对用户身份验证,最常用的方法就是将用户id与密码保存进数据库中了,然后再写一些登录检测代码,就可以使用了。 创建用户信息表:   代码如下: CREATE TABLE tbl_auth_user ( user_id VARCHAR(10) N.........
    ▪php中使用__autoload()自动加载未定义的类      当PHP引擎遇到未实例化的类时就会触发这个方法,当然你的php代码中要用到__autoload()才可以哦。 下面是一段使用__autoload()的代码,供大家学习参考:   代码如下: <?php /** * 自动加载相关.........

[1]截取字符串并保留完整xml标签的php代码
    来源: 互联网  发布时间: 2013-12-24

截取字符串并保留完整xml标签的php代码,有需要的朋友可以参考下。
 

代码如下:
<?php 
    /**
     * author: goosman
     * blog: http://blog.csdn.net/lgg201
     * mail: lgg860911@yahoo.com.cn
     */ 
     
    $str    = '0123456789<a>012</a>0123456789'; 
    function substr_remain_tag($s, $o, $l) { 
        $is_match   = preg_match_all(<<<heredoc 
    ; 
    #该正则表达式解析xml标签, 标签属性内部支持转义符"\", 支持对"\"自身和对应引号的转义 
    <(\w+)             #标签开始 
        (?:          #属性列表 
            \s+       #前置空格 
            \w+    #属性名
            \s*    #属性名后的空白(为了兼容) 
            =        #属性名值之间的等号 
            \s*       #属性值前的空白(为了兼容) 
            (?:         #属性值(引号处理) 
                "         #双引号的情况 
                (?: 
                    \\\\\\\\   #吃掉连续两个转义符(表示转义符自身) 
                    | 
                    \\\\"          #吃掉转义符接着一个引号(表示转义的引号) 
                    | 
                    [^"\\\\]*   #其他字符 
                )* 
                " 
                | 
                '       #单引号情况 
                (?: 
                    \\\\\\\\   #吃掉连续两个转义符(表示转义符自身) 
                    | 
                    \\\\'   #吃掉转义符接着一个引号(表示转义的引号) 
                    | 
                    [^'\\\\]*       #其他字符 
                )* 
                ' 
            ) 
        )* 
    > 
    .*?               #标签内容 
    </(?1)>     #结束标签 
    ;x 
    heredoc 
    , $s, $matches, PREG_OFFSET_CAPTURE, $o); 
        if ( $is_match ) { 
            foreach ( $matches[0] as $match ) { 
                $o0 = $match[1]; 
                #标签左边界越过截取目标右边界, 退出 
                if ( $o0 >= $o + $l ) break; 
                $l0 = strlen($match[0]); 
                #标签右边界在截取目标右边界内, 继续 
                if ( $o0 + $l0 < $o + $l ) continue; 
     
                #以下为标签跨边界处理 
                $l  = $o0 + $l0 - $o; 
                break; 
            } 
        } 
        return substr($s, $o, $l); 
    }  
    echo $str . chr(10); 
    echo substr_remain_tag($str, 0, 20) . chr(10); 

    
[2]存储用户ID和密码到mysql数据库的方法
    来源: 互联网  发布时间: 2013-12-24

对用户身份验证,最常用的方法就是将用户id与密码保存进数据库中了,然后再写一些登录检测代码,就可以使用了。

创建用户信息表:
 

代码如下:

CREATE TABLE tbl_auth_user (
user_id VARCHAR(10) NOT NULL,
user_password CHAR(32) NOT NULL,

PRIMARY KEY (user_id)
);

INSERT INTO tbl_auth_user (user_id, user_password) VALUES ('theadmin', PASSWORD('chumbawamba'));
INSERT INTO tbl_auth_user (user_id, user_password) VALUES ('webmaster', PASSWORD('webmistress'));

我们将使用相同的html代码来创建登录表单在上述示例中创建的。我们只需要修改登录过程有点。
登录脚本:
 

代码如下:

<?php
// 我们必须永远不会忘记启动会话
session_start();

$errorMessage = '';
if (isset()($_POST['txtUserId']) && isset($_POST['txtPassword'])) {
   include 'library/config.php';
   include 'library/opendb.php';

   $userId = $_POST['txtUserId'];
   $password = $_POST['txtPassword'];

   // 检查用户id和密码组合存在于数据库
   $sql = "SELECT user_id
           FROM tbl_auth_user
           WHERE user_id = '$userId'
                 AND user_password = PASSWORD('$password')";

   $result = mysql_query()($sql)
             or die('Query failed. ' . mysql_error());

   if (mysql_num_rows($result) == 1) {
      // sessionthe设置用户id和密码匹配,
      // 设置会话
      $_SESSION['db_is_logged_in'] = true;

      // 在登录后我们转到主页
      header('Location: main.php');
      exit;
   } else {
      $errorMessage = 'Sorry, wrong user id / password';
   }

   include 'library/closedb.php';
}
?>

/ /…相同的html登录表单前一个示例一样

而不是检查用户id和密码对硬编码的信息我们查询数据库,如果这两个存在于数据库使用SELECT查询。如果我们发现一个匹配我们设置会话变量和移动到主页。注意,会话的名字是前缀 “db”使它不同于先前的示例。

在接下来的两个脚本(主要。php和注销。php)代码类似于前一个。唯一的区别是会话名称。这是为这两个的代码
 

代码如下:

<?php
session_start();

//是一个访问这个页面登录呢?
if (!isset($_SESSION['db_is_logged_in'])
   || $_SESSION['db_is_logged_in'] !== true) {

   // 没有登录,返回到登录页面
   header('Location: login.php');
   exit;
}

?>

/ /…这里的一些html代码

 

代码如下:

<?php
session_start();

// 如果用户已登录,设置会话
if (isset($_SESSION['db_is_logged_in'])) {
   unset($_SESSION['db_is_logged_in']);
}

// 现在,用户登录,
// 去登录页面
header('Location: login.php');
?>


    
[3]php中使用__autoload()自动加载未定义的类
    来源: 互联网  发布时间: 2013-12-24

当PHP引擎遇到未实例化的类时就会触发这个方法,当然你的php代码中要用到__autoload()才可以哦。
下面是一段使用__autoload()的代码,供大家学习参考:
 

代码如下:
<?php
/**
* 自动加载相关类库文件
*/
function __autoload($classname){
if(substr($classname,-6)=="Action"){
include APP_PATH.'controllers/'.$classname.'.class.php';
}elseif(substr($classname, -5)=="Model"){
include APP_PATH.'models/'.$classname.'.class.php';
}elseif($classname=="Smarty"){
include SYSTEM_PATH.'smarty/Smarty.class.php';
}else{
include APP_PATH.'common/'.$classname.'.class.php';
}
}
?>
 

另一种包含路径的方法:
 

代码如下:
<?php
function __autoload($class_name) {
$path = str_replace()('_', DIRECTORY_SEPARATOR, $class_name);
require_once $path.'.php';
}
?>
 

说明:将下划线转换为目录分隔符(DIRECTORY_SEPARATOR),这样做即可以有效管理库文件,又解决了跨平台的问题。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
java开发知识 iis7站长之家
▪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,