当前位置: 编程技术>php
本页文章导读:
▪php去除HTML标签实例
例1、php自带的函数可以去除/删除字符串中的HTML标签/代码。strip_tags(string,allow):函数剥去 HTML、XML 以及 PHP 的标签。参数:string,必填,规定要检查的字符串;allow,选填,规定允许存在的标签,这.........
▪php实现监听事件
如何实现事件监听,参考了jQuery的事件绑定思路,简单的实现了一下。主要功能:1.绑定事件 支持一个事件绑定多个动作,支持绑定一次性事件2.触发事件3.注销事件 代码如下:class Event { .........
▪php生成扇形比例图实例
我们在很多网站会看到一些图形的百分比显示图,像三个地区所占地多少或者是成绩等,给大家介绍一款用php生成的扇形比例百分比显示程序代码,不过使用它首先得有phpGD库支持。 代码如.........
[1]php去除HTML标签实例
来源: 互联网 发布时间: 2013-11-30
例1、php自带的函数可以去除/删除字符串中的HTML标签/代码。
strip_tags(string,allow):函数剥去 HTML、XML 以及 PHP 的标签。
参数:string,必填,规定要检查的字符串;allow,选填,规定允许存在的标签,这些标签不会被删除。
代码如下:
$str = '郭碗瓢盆-<span >PHP</span>';
$str1 = strip_tags($str); // 删除所有HTML标签
$str2 = strip_tags($str,'<span>'); // 保留 <span>标签
echo $str1; // 输出 郭碗瓢盆-PHP
echo $str2; // 样式不一样喔
例2、清除HTML标签字符串中某些属性代码
使用PHP处理从数据库中读取的文章HTML代码,然后用正则对代码进行匹配与修改,保存代码以后,用静态生成功能即可生成修改后的HTML页面了。
因为我们生成的代码是已经处理过的代码,所以就不会影响HTML页面的加载速度了。
具体 [示例代码]如下:
代码如下:
<?php
$str = "<img src="" width="245" height="138" onclick="window.open('xxxx.gif')" />";
$str = preg_replace('#onclick=([sS]*)"#','',$str);
// #符号前面有一个双引号要注意,代表结束的代码
print($str);
?>
[2]php实现监听事件
来源: 互联网 发布时间: 2013-11-30
如何实现事件监听,参考了jQuery的事件绑定思路,简单的实现了一下。
主要功能:
1.绑定事件 支持一个事件绑定多个动作,支持绑定一次性事件
2.触发事件
3.注销事件
class Event
{
protected static $listens = array();
public static function listen($event, $callback, $once=false){
if(!is_callable($callback)) return false;
self::$listens[$event][] = array('callback'=>$callback, 'once'=>$once);
return true;
}
public static function one($event, $callback){
return self::listen($event, $callback, true);
}
public static function remove($event, $index=null){
if(is_null($index))
unset(self::$listens[$event]);
else
unset(self::$listens[$event][$index]);
}
public static function trigger(){
if(!func_num_args()) return;
$args = func_get_args();
$event = array_shift($args);
if(!isset(self::$listens[$event])) return false;
foreach((array) self::$listens[$event] as $index=>$listen){
$callback = $listen['callback'];
$listen['once'] && self::remove($event, $index);
call_user_func_array($callback, $args);
}
}
}
以下是一些调用的例子:
// 增加监听walk事件
Event::listen('walk', function(){
echo "I am walking...n";
});
// 增加监听walk一次性事件
Event::listen('walk', function(){
echo "I am listening...n";
}, true);
// 触发walk事件
Event::trigger('walk');
/*
I am walking...
I am listening...
*/
Event::trigger('walk');
/*
I am walking...
*/
Event::one('say', function($name=''){
echo "I am {$name}n";
});
Event::trigger('say', 'deeka'); // 输出 I am deeka
Event::trigger('say', 'deeka'); // not run
class Foo
{
public function bar(){
echo "Foo::bar() is calledn";
}
public function test(){
echo "Foo::foo() is called, agrs:".json_encode(func_get_args())."n";
}
}
$foo = new Foo;
Event::listen('bar', array($foo, 'bar'));
Event::trigger('bar');
Event::listen('test', array($foo, 'test'));
Event::trigger('test', 1, 2, 3);
class Bar
{
public static function foo(){
echo "Bar::foo() is calledn";
}
}
Event::listen('bar1', array('Bar', 'foo'));
Event::trigger('bar1');
Event::listen('bar2', 'Bar::foo');
Event::trigger('bar2');
function bar(){
echo "bar() is calledn";
}
Event::listen('bar3', 'bar');
Event::trigger('bar3');
主要功能:
1.绑定事件 支持一个事件绑定多个动作,支持绑定一次性事件
2.触发事件
3.注销事件
代码如下:
class Event
{
protected static $listens = array();
public static function listen($event, $callback, $once=false){
if(!is_callable($callback)) return false;
self::$listens[$event][] = array('callback'=>$callback, 'once'=>$once);
return true;
}
public static function one($event, $callback){
return self::listen($event, $callback, true);
}
public static function remove($event, $index=null){
if(is_null($index))
unset(self::$listens[$event]);
else
unset(self::$listens[$event][$index]);
}
public static function trigger(){
if(!func_num_args()) return;
$args = func_get_args();
$event = array_shift($args);
if(!isset(self::$listens[$event])) return false;
foreach((array) self::$listens[$event] as $index=>$listen){
$callback = $listen['callback'];
$listen['once'] && self::remove($event, $index);
call_user_func_array($callback, $args);
}
}
}
以下是一些调用的例子:
代码如下:
// 增加监听walk事件
Event::listen('walk', function(){
echo "I am walking...n";
});
// 增加监听walk一次性事件
Event::listen('walk', function(){
echo "I am listening...n";
}, true);
// 触发walk事件
Event::trigger('walk');
/*
I am walking...
I am listening...
*/
Event::trigger('walk');
/*
I am walking...
*/
Event::one('say', function($name=''){
echo "I am {$name}n";
});
Event::trigger('say', 'deeka'); // 输出 I am deeka
Event::trigger('say', 'deeka'); // not run
class Foo
{
public function bar(){
echo "Foo::bar() is calledn";
}
public function test(){
echo "Foo::foo() is called, agrs:".json_encode(func_get_args())."n";
}
}
$foo = new Foo;
Event::listen('bar', array($foo, 'bar'));
Event::trigger('bar');
Event::listen('test', array($foo, 'test'));
Event::trigger('test', 1, 2, 3);
class Bar
{
public static function foo(){
echo "Bar::foo() is calledn";
}
}
Event::listen('bar1', array('Bar', 'foo'));
Event::trigger('bar1');
Event::listen('bar2', 'Bar::foo');
Event::trigger('bar2');
function bar(){
echo "bar() is calledn";
}
Event::listen('bar3', 'bar');
Event::trigger('bar3');
[3]php生成扇形比例图实例
来源: 互联网 发布时间: 2013-11-30
我们在很多网站会看到一些图形的百分比显示图,像三个地区所占地多少或者是成绩等,给大家介绍一款用php生成的扇形比例百分比显示程序代码,不过使用它首先得有phpGD库支持。
<?php
//填充图表的参数
$ChartDiameter = 60; //图表直径
$ChartData = array(30,70);//用于生成图表的数据,可通过数据库来取得来确定也可以多个不过和颜色数组对应
//把角度转换为弧度
function radians($degrees){return($degrees*(pi()/180.0));}
//取得在圆心为(0,0)圆上 x,y点的值
function circle_point($degrees,$diameter){$x=cos(radians($degrees))*($diameter/2);$y=sin(radians($degrees))*($diameter/2);return (array($x,$y));}
//确定图形的大小
$ChartWidth = $ChartDiameter + 20;
$ChartHeight = $ChartDiameter + 20;
//确定统计的总数
$ChartTotal = “”;
for($index = 0;$index < count($ChartData);$index++){
$ChartTotal += $ChartData[$index];
}
$ChartCenterX = $ChartDiameter/2 + 10;
$ChartCenterY = $ChartDiameter/2 + 10;
//生成空白图形
$image = imagecreate($ChartWidth, $ChartHeight);
//分配颜色
$colorBody = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$colorBorder = imagecolorallocate($image, 0×00, 0×00, 0×00);
$colorText = imagecolorallocate($image, 0×00, 0×00, 0×00);
$colorSlice[] = imagecolorallocate($image, 0xFF, 0×00, 0×00);//这里是和你上面写的数组对应的颜色
$colorSlice[] = imagecolorallocate($image, 0×00, 0xFF, 0×00);
//填充背境
imagefill($image, 0, 0, $colorBody);
//画每一个扇形
$Degrees = 0;
for($index = 0; $index < count($ChartData); $index++){
$StartDegrees = round($Degrees);
$Degrees += (($ChartData[$index]/$ChartTotal)*360);
$EndDegrees = round($Degrees);
$CurrentColor = $colorSlice[$index%(count($colorSlice))];
//画图F
imagearc($image,$ChartCenterX,$ChartCenterY,$ChartDiameter,$ChartDiameter,$StartDegrees,$EndDegrees, $CurrentColor);
//画直线
list($ArcX, $ArcY) = circle_point($StartDegrees, $ChartDiameter);
imageline($image,$ChartCenterX,$ChartCenterY,floor($ChartCenterX + $ArcX),
floor($ChartCenterY + $ArcY),$CurrentColor);
//画直线
list($ArcX, $ArcY) = circle_point($EndDegrees, $ChartDiameter);
imageline($image,$ChartCenterX,$ChartCenterY,ceil($ChartCenterX + $ArcX),
ceil($ChartCenterY + $ArcY),$CurrentColor);
//填充扇形
$MidPoint = round((($EndDegrees – $StartDegrees)/2) + $StartDegrees);
list($ArcX, $ArcY) = circle_point($MidPoint, $ChartDiameter/2);
imagefilltoborder($image,floor($ChartCenterX + $ArcX),floor($ChartCenterY + $ArcY),
$CurrentColor,$CurrentColor);
}
//到此脚本 已经生了一幅图像的,现在需要的是把它发到浏览器上,重要的一点是要将标头发给浏览器,让它知道是一个GIF文件。不然的话你只能看到一堆奇怪的乱码
header(“Content-type: image/png”);
imagegif($image);
?>
代码如下:
<?php
//填充图表的参数
$ChartDiameter = 60; //图表直径
$ChartData = array(30,70);//用于生成图表的数据,可通过数据库来取得来确定也可以多个不过和颜色数组对应
//把角度转换为弧度
function radians($degrees){return($degrees*(pi()/180.0));}
//取得在圆心为(0,0)圆上 x,y点的值
function circle_point($degrees,$diameter){$x=cos(radians($degrees))*($diameter/2);$y=sin(radians($degrees))*($diameter/2);return (array($x,$y));}
//确定图形的大小
$ChartWidth = $ChartDiameter + 20;
$ChartHeight = $ChartDiameter + 20;
//确定统计的总数
$ChartTotal = “”;
for($index = 0;$index < count($ChartData);$index++){
$ChartTotal += $ChartData[$index];
}
$ChartCenterX = $ChartDiameter/2 + 10;
$ChartCenterY = $ChartDiameter/2 + 10;
//生成空白图形
$image = imagecreate($ChartWidth, $ChartHeight);
//分配颜色
$colorBody = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$colorBorder = imagecolorallocate($image, 0×00, 0×00, 0×00);
$colorText = imagecolorallocate($image, 0×00, 0×00, 0×00);
$colorSlice[] = imagecolorallocate($image, 0xFF, 0×00, 0×00);//这里是和你上面写的数组对应的颜色
$colorSlice[] = imagecolorallocate($image, 0×00, 0xFF, 0×00);
//填充背境
imagefill($image, 0, 0, $colorBody);
//画每一个扇形
$Degrees = 0;
for($index = 0; $index < count($ChartData); $index++){
$StartDegrees = round($Degrees);
$Degrees += (($ChartData[$index]/$ChartTotal)*360);
$EndDegrees = round($Degrees);
$CurrentColor = $colorSlice[$index%(count($colorSlice))];
//画图F
imagearc($image,$ChartCenterX,$ChartCenterY,$ChartDiameter,$ChartDiameter,$StartDegrees,$EndDegrees, $CurrentColor);
//画直线
list($ArcX, $ArcY) = circle_point($StartDegrees, $ChartDiameter);
imageline($image,$ChartCenterX,$ChartCenterY,floor($ChartCenterX + $ArcX),
floor($ChartCenterY + $ArcY),$CurrentColor);
//画直线
list($ArcX, $ArcY) = circle_point($EndDegrees, $ChartDiameter);
imageline($image,$ChartCenterX,$ChartCenterY,ceil($ChartCenterX + $ArcX),
ceil($ChartCenterY + $ArcY),$CurrentColor);
//填充扇形
$MidPoint = round((($EndDegrees – $StartDegrees)/2) + $StartDegrees);
list($ArcX, $ArcY) = circle_point($MidPoint, $ChartDiameter/2);
imagefilltoborder($image,floor($ChartCenterX + $ArcX),floor($ChartCenterY + $ArcY),
$CurrentColor,$CurrentColor);
}
//到此脚本 已经生了一幅图像的,现在需要的是把它发到浏览器上,重要的一点是要将标头发给浏览器,让它知道是一个GIF文件。不然的话你只能看到一堆奇怪的乱码
header(“Content-type: image/png”);
imagegif($image);
?>
最新技术文章: