Skip to content
windwild edited this page Dec 5, 2011 · 8 revisions

#weblib.php解析

##材料一、官方的文档 官方文档资料

#材料二、我的分析 ##s()和p()

/**
 * Add quotes to HTML characters
 *
 * Returns $var with HTML characters (like "<", ">", etc.) properly quoted.
 * This function is very similar to {@link p()}
 *
 * @todo Remove obsolete param $obsolete if not used anywhere
 *
 * @param string $var the string potentially containing HTML characters
 * @param boolean $obsolete no longer used.
 * @return string
 */
function s($var, $obsolete = false) {

    if ($var === '0' or $var === false or $var === 0) {
        return '0';
    }

    return preg_replace("/&amp;#(\d+|x[0-7a-fA-F]+);/i", "&#$1;", htmlspecialchars($var, ENT_QUOTES, 'UTF-8', true));
}

/**
 * Add quotes to HTML characters
 *
 * Prints $var with HTML characters (like "<", ">", etc.) properly quoted.
 * This function simply calls {@link s()}
 * @see s()
 *
 * @todo Remove obsolete param $obsolete if not used anywhere
 *
 * @param string $var the string potentially containing HTML characters
 * @param boolean $obsolete no longer used.
 * @return string
 */
function p($var, $obsolete = false) {
    echo s($var, $obsolete);
}

以上代码功能基本相同 就是输出UTF-8的文本

示例程序:


<?php

function s($var, $obsolete = false) {

    if ($var === '0' or $var === false or $var === 0) {
        return '0';
    }

    return preg_replace("/&amp;#(\d+|x[0-7a-fA-F]+);/i", "&#$1;", htmlspecialchars($var, ENT_QUOTES, 'UTF-8', true));
}

function p($var, $obsolete = false) {
    echo s($var, $obsolete);
}

p('helloworld');
echo '<br>##########<br>';
echo s('<a>');
echo '<br>##########<br>';
p('!@#$%^&*()_+');

结果:

helloworld
##########
<a>
##########
!@#$%^&*()_+

你觉得没什么 是这样的么??? 难道你没发现你输出的html标签还是文本么!

##function addslashes_js($var) 废弃了 不用管了

##function get_referer($stripquery=true) 返回$_SERVER['HTTP_REFERER']   简而言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

##format_test()## function format_text($text, $format=FORMAT_MOODLE, $options=NULL, $courseid=NULL ) Mainly used for long strings like posts, answers, glossary items... 主要是用来输出post answsers 等,非常强大的函数 能清理不安全的内容 支持多种多样的文本 而且还有基于db的缓存功能,当服务器处理大量相同的文本的时候可以缓解服务器的压力。

##format_string()## function format_string ($string, $striplinks = true, $courseid=NULL ) 处理短的字符串,比如标题这样的 同样有过滤功能,是format_test的缩减版

##print_textarea()## function print_textarea($usehtmleditor, $rows, $cols, $width, $height, $name, $value='', $courseid=0, $return=false) 以textarea方式显示文本。

##weblib.php总结## 这个文件主要的作用就是做各种文本的处理 很强大 值得学习 官方给的一个doc 官方小doc