php htmlspecialchars

 更新时间:2016年11月25日 16:51  点击:2138

php htmlspecialchars
 在开发程序时经常会碰客户或网友输入html 进行注入操作,php提供一专业的函数来处理这种情况的发生,htmlspecialchars函。
 htmlspecialchars(string,int quote_style,string charset);
 
 它可以把<br>转换成html编码,好了下面我们来看一个简单的实例吧。
 
 function PostGet($str,$post=0)
 {
  empty($str)?die('提供参数'.$str.'错误!'):'';
  if( $post )
  {
   return addslashes(htmlspecialchars($_POST[$str]));
  }
  else
  {
   return addslashes(htmlspecialchars($_GET[$str]))
   
  }
 } 
 本站原创转载注明www.111cn.net

php imagecolorallocatealpha 创建透明图片实例

imagecolorallocatealpha(resource $image , int $red , int $green , int $blue

, int $alpha )
imagecolorallocatealpha()的行为相同imagecolorallocate()同阿尔法增加透明

度参数。


$image
图像资源,通过创造的图像功能,如,一返回imagecreatetruecolor()。

$red
红色分量的价值。

$green
价值的绿色成分。

$blue
蓝色成分的价值。

$alpha
一个介于0和127的价值。 0表示完全不透明,而127表示完全透明。
来看个imagecolorallocatealpha实例教程

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

ob_start()是开启output buffering,也就是缓冲输入内容
ob_gzhandle使用gzip处理内容,作为ob_start的参数,表示当输入缓冲内容时使用的回调函数,你也可以自己定义回调函数
例如手册中的例子:
[php]
<?php

function callback($buffer)
{
   // replace all the apples with oranges
   return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush();

?>
[/php]

输出时,内容中的apples会变成oranges,你可以试试去掉ob_start中的callback,看看有什么不同

 

php fopen 函数 读写文件操作
function getFile($url)
{
    if($f=fopen("$url","r"))
    {
        while(!feof($f))
        {
            $s.=fgets($f);
        }
        fclose($f);
        return $s;
    } else {
        return false;
    }   
}

function putFile($file_name,$file_string)
{
    if($f=fopen($file_name,"w"))
    {
        fwrite($f, $file_string);
    }
    fclose($f);
}

提供一款大这在与flash效果时一个问题编码问题哦,下面我们提供N种php 编码转换和字符编码转换功能哦,好了费话不说多了喜欢就看看吧。

面的两段VB代码分别针对UTF-8(UTF8ENCODEURI)和GB2312(GBKENCODEURI)进行了编码的转换。

    PRIVATE SUB COMMAND1_CLICK()
        DEBUG.PRINT (UTF8ENCODEURI("汉字"))
        DEBUG.PRINT (GBKENCODEURI("汉字"))
    END SUB


    FUNCTION UTF8ENCODEURI(SZINPUT)
        DIM WCH, UCH, SZRET
        DIM X
        DIM NASC, NASC2, NASC3

        IF SZINPUT = "" THEN
            UTF8ENCODEURI = SZINPUT
            EXIT FUNCTION
        END IF

        FOR X = 1 TO LEN(SZINPUT)
            WCH = MID(SZINPUT, X, 1)
            NASC = ASCW(WCH)

            IF NASC < 0 THEN NASC = NASC + 65536

            IF (NASC AND &HFF80) = 0 THEN
                SZRET = SZRET & WCH
            ELSE
                IF (NASC AND &HF000) = 0 THEN
                    UCH = "%" & HEX(((NASC 2 ^ 6)) OR &HC0) & HEX(NASC AND &H3F OR &H80)
                    SZRET = SZRET & UCH
                ELSE
                    UCH = "%" & HEX((NASC 2 ^ 12) OR &HE0) & "%" & _
                    HEX((NASC 2 ^ 6) AND &H3F OR &H80) & "%" & _
                    HEX(NASC AND &H3F OR &H80)
                    SZRET = SZRET & UCH
                END IF
            END IF
        NEXT


iconv() 函数
Definition and Usage
定义和用法
iconv()函数的作用是:转换字符串的编码。

Description
string iconv ( string in_charset, string out_charset, string str )

Tips and Notes
注意点
注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。

mb_convert_encoding() 函数
Definition and Usage
定义和用法
mb_convert_encoding()函数的作用是:转换字符串的编码。

Description
string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])

注意:但是需要先enable mbstring 扩展库。
两者区别:mb_convert_encoding 中根据内容自动识别编码;mb_convert_encoding功能强大,但是执行效率比iconv差太多;

总结:一般情况下用 iconv,只有当遇到无法确定原编码是何种编码时才用 mb_convert_encoding 函数.

1、把 GBK 编码字串转换成 UTF-8 编码字串 view plaincopy to clipboardprint?
<?php  
header("content-Type: text/html; charset=Utf-8");  
echo mb_convert_encoding("你是我的好朋友", "UTF-8", "GBK");  
?>  


2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plaincopy to clipboardprint?
// 注意将此文件存盘成   utf-8 编码格式文件再测试  
<?php  
header("content-Type: text/html; charset=gb2312");  
echo mb_convert_encoding("你是我的好朋友", "gb312", "utf-8");  
?>   


信源:fleaphp.net
mb_convert_encoding 函数为php内部多字节字符串编码转换函数,可以在有需要的使用场合(如:解决在GB2312编码环境下使用Ajax产生的中文字乱码的问题)方便进行编码转换,以解决网页乱码的问题,使用非常方便,效率非常高,
几乎支持所有编码。PHP 4 >= 4.0.6、PHP 5 版本支持。

函数原型: 引用:
/**
* 多字节字符串编码转换函数
*
* @param string str 需要进行编码转换的字符串
* @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等
* @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码
* @return string
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )使用举例:

1、把 GBK 编码字串转换成 UTF-8 编码字串 view plaincopy to clipboardprint?
<?php  
header("content-Type: text/html; charset=Utf-8");  
echo mb_convert_encoding("你是我的好朋友", "UTF-8", "GBK");  
?>  

<?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你是我的好朋友", "UTF-8", "GBK"); ?>
2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plaincopy to clipboardprint?
// 注意将此文件存盘成   utf-8 编码格式文件再测试  
<?php  
header("content-Type: text/html; charset=gb2312");  
echo mb_convert_encoding("你是我的好朋友", "gb312", "utf-8");  
?>   

// 注意将此文件存盘成   utf-8 编码格式文件再测试 <?php header("content-Type: text/html; charset=gb2312"); echo mb_convert_encoding("你是我的好朋友", "gb312", "utf-8"); ?>
3、对整个页面进行转换
该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用   NCR(Numeric character reference,如“汉字”将转换成“&#27721;&#23383;”这种形式)来表示,这样的编码在任意编码环境下页面都能正 常显示。

在php文件的头部加上下面三行代码: view plaincopy to clipboardprint?
mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码  
mb_http_output("HTML-ENTITIES");  
ob_start('mb_output_handler');  

mb_internal_encoding("gb2312");   // 这里的gb2312是你网站原来的编码 mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');
使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展。

查看php的信息页面,如果出现如下画面:
   2008-10-16_111050.png (137.62 KB)
2008-10-16 12:01

则说明已启用mbstring (multi-byte string)扩展支持。

如果没有出现上面的画面,则需要做如下设置,让php支持该扩展。

1、windows 服务器环境

编辑 php.ini 文件,将; extension=php_mbstring.dll 前面的 ; 去掉,重启网页服务器。

2、Linux服务器环境

在编译配置时加入 --enable-mbstring=cn 编译参数,再进行PHP的编译安装。

 

[!--infotagslink--]

相关文章

  • C语言中的字符(char)详细讲解

    本篇文章主要介绍C语言中char的知识,并附有代码实例,以便大家在学习的时候更好的理解,有需要的可以看一下...2020-04-25
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • 深入研究mysql中的varchar和limit(容易被忽略的知识)

    为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。 ...2015-03-15
  • IE6-IE9中tbody的innerHTML不能赋值的解决方法

    IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <body style="height:3...2014-06-07
  • XML、HTML、CSS与JS的区别整理

    在BS中,xml,html,css和js我们都学过,起初分不清这四者的区别和联系,随着知识的增长,有了一些体会,下面通过本文给大家简单介绍 XML、HTML、CSS与JS的区别,需要的朋友参考下...2016-02-21
  • Angular.js中下拉框实现渲染html的方法

    这篇文章主要给大家介绍了关于在Angular.js中下拉框实现渲染html的方法,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来跟着小编一起来学习学习吧。...2017-06-24
  • angularjs中ng-bind-html的用法总结

    这篇文章主要介绍了angularjs中ng-bind-html的用法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-05-27
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
  • C#使用正则表达式过滤html标签

    最近在开发一个项目,其中有需求要求我们把一段html转换为一般文本返回,使用正则表达式是明智的选择,下面小编给介绍下C#使用正则表达式过滤html标签,需要的朋友参考下...2020-06-25
  • C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码

    这篇文章主要介绍了C# 如何使用 WebBrowser 实现 HTML 转图片功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
  • js innerHTML 改变div内容

    在做ajax无刷新时,我想很多朋友都会知道js innerHTML来更改 div 或table里面的值哦. JavaScript的innerHTML 永远不知道你可以改变的内容,一个HTML元素?也许你要...2016-09-20
  • IE6-IE9使用JSON、table.innerHTML所引发的问题

    这篇文章主要介绍了IE6-IE9使用JSON、table.innerHTML所引发的问题 ,需要的朋友可以参考下...2015-12-24
  • JS实现pasteHTML兼容ie,firefox,chrome的方法

    这篇文章主要介绍了JS实现pasteHTML兼容ie,firefox,chrome的方法,涉及javascript针对页面元素的动态操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2016-06-24
  • html中MIME介绍及用途说明

    MIME表示多用途Internet邮件扩允协议。多用途互联网邮件扩展类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使...2016-09-20
  • C#语言中字符类char的使用方法(总结)

    下面小编就为大家带来一篇C#语言中字符类char的使用方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • Razor TagHelper实现Markdown转HTML的方法

    下面小编就为大家分享一篇Razor TagHelper实现Markdown转HTML的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-09-22
  • 浅谈C++中char型变量的地址输出

    下面小编就为大家带来一篇浅谈C++中char 型变量的地址输出。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
  • IE下select标签innerHTML插入option的BUG

    调用方法 addOption(sltObj, '<option>a</option>'); 代码如下 var sltObj=document.getElementById('xx');//获取select对象,这里只是给个例子,可以按自己习惯来获...2016-09-20
  • React html中使用react的两种方式

    这篇文章主要介绍了React html中使用react的两种方式,本文给大家提到了React pwa的配置代码,给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-06
  • MySQL中varchar和char类型的区别

    VARCHAR和CHAR是两种最主要的字符串类型。那么MySQL中varchar和char类型的区别是什么,本文就具体来介绍一下,感兴趣的可以了解一下...2021-11-14