当前位置: 编程技术>php
本页文章导读:
▪php简单封装了一些常用JS操作
在web编程中大家应该会经常用到一些常用js操作,例如 alert(),通常是遇到了再写,受公司的启发,我自己简单写了个类来自动生成这些js,目的就是为了方便,一个小玩意,新手们也许.........
▪实现了一个PHP5的getter/setter基类的代码
PHP3、PHP4都拥有类,但它们的类定义的实在很不像样,效率还挺难为情的,但资料上说PHP5重新构造了面向对象的支持,尽管并不是完全面向对象,但也算能拿出来见人了。 昨天晚上闲着无.........
▪php公用函数列表[正则]
代码如下:<?php /********************************************************************* * 公用函数列表 * ubb,getip,GoIn,goback,IsInt,InString * OurHome:http://iwind.org * http://10.13.31.90/~coldwind * * */ /////////////////ubb支.........
[1]php简单封装了一些常用JS操作
来源: 互联网 发布时间: 2013-11-30
在web编程中大家应该会经常用到一些常用js操作,例如 alert(),通常是遇到了再写,受公司的启发,我自己简单写了个类来自动生成这些js,目的就是为了方便,一个小玩意,新手们也许会喜欢^_^
[php]
<?php
/*
*页面:makeJs.class.php
*功能:封装常用的JS代码,直接调用,方便操作
*作者:辉老大
*创建时间:2007-01-27
*/
class makeJs
{
private $jsStartChar = '<scrīpt type="text/javascrīpt">';//定义js起始标记
private $jsEndChar = '</scrīpt>';//定义js结束标记
/*
*函数名称:jsAlert
*函数功能:弹出JS提示框
*参数:$message 要在弹出提示框中显示的文字 $url 点击后跳转的路径,为空则不跳转
*使用方法:
*$js = new makeJs();//以下介绍使用方法省略此句
*$js->jsAlert(显示的文字,'跳转页面URL');//弹出对话框,点击确定后跳转到php.php页面
*$js->jsAlert(显示的文字,'');//弹出对话框,点击确定后没有跳转
*/
public function jsAlert($message,$url){
echo $this->jsStartChar;
if($url==''){
echo 'alert' . '("' . $message . '");';
echo $this->jsEndChar;
}
else{
echo 'alert' . '("' . $message . '");';
echo $this->jsEndChar;
echo '<meta http-equiv="refresh" c>';
}
}
/*
*函数名称:jsConfirm
*函数功能:弹出JS提示框,带确定/取消
*参数:$message 要在弹出提示框中显示的文字
*使用方法:$js->jsConfirm('显示的文字');
*/
public function jsConfirm($message){
echo $this->jsStartChar;
if($url==''){
echo 'confirm' . '("' . $message . '");';
echo $this->jsEndChar;
}
}
/*
*函数名称:jsOpenWin
*函数功能:弹出新窗口
*参数:$url 路径 $name 窗口名 $height 窗口高度 $width 窗口宽度
*使用方法:
*$url = '页面的URL';
*$js->jsOpenWin($url,窗口名,窗口高度,窗口宽度);
*/
public function jsOpenWin($url,$name,$height,$width){
echo $this->jsStartChar;
echo 'window.open'.'("'.$url.'","'.$name.'","'.$height.'","'.$width.'");';
echo $this->jsEndChar;
}
/*
*函数名称:jsAddscrīpt
*函数功能:自定义JS
*参数:$scrīpt
*使用方法:
*$scrīpt = '定义的js语句';
*例如:$scrīpt = 'window.location=(\'php.php\')';
*$js->jsAddscrīpt($scrīpt);
*/
public function jsAddscrīpt($scrīpt){
echo $this->jsStartChar;
echo $scrīpt;
echo $this->jsEndChar;
}
}
?>
[/php]
[php]
<?php
/*
*页面:makeJs.class.php
*功能:封装常用的JS代码,直接调用,方便操作
*作者:辉老大
*创建时间:2007-01-27
*/
class makeJs
{
private $jsStartChar = '<scrīpt type="text/javascrīpt">';//定义js起始标记
private $jsEndChar = '</scrīpt>';//定义js结束标记
/*
*函数名称:jsAlert
*函数功能:弹出JS提示框
*参数:$message 要在弹出提示框中显示的文字 $url 点击后跳转的路径,为空则不跳转
*使用方法:
*$js = new makeJs();//以下介绍使用方法省略此句
*$js->jsAlert(显示的文字,'跳转页面URL');//弹出对话框,点击确定后跳转到php.php页面
*$js->jsAlert(显示的文字,'');//弹出对话框,点击确定后没有跳转
*/
public function jsAlert($message,$url){
echo $this->jsStartChar;
if($url==''){
echo 'alert' . '("' . $message . '");';
echo $this->jsEndChar;
}
else{
echo 'alert' . '("' . $message . '");';
echo $this->jsEndChar;
echo '<meta http-equiv="refresh" c>';
}
}
/*
*函数名称:jsConfirm
*函数功能:弹出JS提示框,带确定/取消
*参数:$message 要在弹出提示框中显示的文字
*使用方法:$js->jsConfirm('显示的文字');
*/
public function jsConfirm($message){
echo $this->jsStartChar;
if($url==''){
echo 'confirm' . '("' . $message . '");';
echo $this->jsEndChar;
}
}
/*
*函数名称:jsOpenWin
*函数功能:弹出新窗口
*参数:$url 路径 $name 窗口名 $height 窗口高度 $width 窗口宽度
*使用方法:
*$url = '页面的URL';
*$js->jsOpenWin($url,窗口名,窗口高度,窗口宽度);
*/
public function jsOpenWin($url,$name,$height,$width){
echo $this->jsStartChar;
echo 'window.open'.'("'.$url.'","'.$name.'","'.$height.'","'.$width.'");';
echo $this->jsEndChar;
}
/*
*函数名称:jsAddscrīpt
*函数功能:自定义JS
*参数:$scrīpt
*使用方法:
*$scrīpt = '定义的js语句';
*例如:$scrīpt = 'window.location=(\'php.php\')';
*$js->jsAddscrīpt($scrīpt);
*/
public function jsAddscrīpt($scrīpt){
echo $this->jsStartChar;
echo $scrīpt;
echo $this->jsEndChar;
}
}
?>
[/php]
[2]实现了一个PHP5的getter/setter基类的代码
来源: 互联网 发布时间: 2013-11-30
PHP3、PHP4都拥有类,但它们的类定义的实在很不像样,效率还挺难为情的,但资料上说PHP5重新构造了面向对象的支持,尽管并不是完全面向对象,但也算能拿出来见人了。
昨天晚上闲着无聊便弄起这玩意,感觉PHP5增加的类成员权限关键字挺好,但问题又来了,似乎还没一种方便的方式可以定义字段的getter以及setter,传统的方式是这样定义的:
class a
{
private $field;
public function get_field() { return $this->$field; }
public function set_field($value) { $this->field = $value; }
}
虽然实现起来挺容易,但是说实在的,为一个字段去写这一堆代码还真不爽。。
于是便思索着是不是有一种更方便的方式来解决,并且可以方便地定义它的类型限制什么的。
捣鼓了半天(没办法,对它不熟。。),终于弄出一个类来解决这个问题:
class abstract_entity
{
private $fields;
private $sys_type = array(
"bool" => "",
"array" => "",
"double" => "",
"float" => "",
"int" => "",
"integer" => "",
"long " => "",
"null" => "",
"object" => "",
"real" => "",
"resource" => "",
"string" => ""
// "mixed" and "number"
);
protected function __construct($fields)
{
/*********************************\
* $fields = array(
* "id" = array(
* "allow_null" = false,
* "value" = 1,
* "type" = "int"
* );
* );
\**********************************/
$this->fields = $fields;
}
public function __get($key)
{
if(array_key_exists($key, $this->fields))
{
return $this->fields[$key]["value"];
}
else
{
throw new Exception("该属性不存在");
}
}
public function __set($key, $value)
{
if(array_key_exists($key, $this->fields))
{
$allow_null = $this->fields[$key]["allow_null"];
$type = $this->fields[$key]["type"];
if(array_key_exists($type, $this->sys_type))
{
$fun = create_function('$value', "return is_$type($value);");
if(@$fun($value))
{
$this->fields[$key]["value"] = $value;
}
else if($allow_null && is_null($value))
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值类型不正确,必须为" . $type . "类型");
}
}
else if($type == "mixed")
{
if(!is_null($value))
{
$this->fields[$key]["value"] = $value;
}
else if($allow_null)
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值不允许为NULL值");
}
}
else if($type == "number")
{
if(is_int($value) || is_float($value))
{
$this->fields[$key]["value"] = $value;
}
else if(is_null($value) && $allow_null)
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值类型不正确,必须为" . $type . "类型");
}
}
else
{
if(class_exists($type) || interface_exists($type))
{
if(is_subclass_of($value, $type))
{
$this->fields[$key]["value"] = $value;
}
else if(is_null($value) && $allow_null)
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值类型不正确,必须为" . $type . "类型");
}
}
else if(is_null($value) && $allow_null)
{
$this->fields[$key]["value"] = NULL;
}
}
}
else
{
throw new Exception("该属性不存在");
}
}
}
通过定义一个一定格式的array可以比较方便地定义该字段的类型、是否允许NULL值以及默认值。
测试代码如下:
class test extends abstract_entity
{
public function __construct()
{
$define = array(
"id" => array(
"allow_null" => false,
"value" => 1,
"type" => "int"
),
"name" => array(
"allow_null" => false,
"value" => "abc",
"type" => "string"
),
"gender" => array(
"allow_null" => false,
"value" => true,
"type" => "bool"
),
"ins" => array(
"allow_null" => false,
"value" => $this,
"type" => "test"
),
"ins1" => array(
"allow_null" => true,
"value" => $this,
"type" => "test"
),
"ins2" => array(
"allow_null" => true,
"value" => NULL,
"type" => "config_media_type"
)
);
parent::__construct($define);
}
}
$a = new test();
$a->id = 123;
eche $a->id;
echo $a->ins1;
$a->ins1 = NULL;
echo is_null($a->ins1);
这里边实现了getter以及setter,但由于时间关系我没去实现readonly的功能,其实很简单,就是再加一项,标识它能不能被改写就成
昨天晚上闲着无聊便弄起这玩意,感觉PHP5增加的类成员权限关键字挺好,但问题又来了,似乎还没一种方便的方式可以定义字段的getter以及setter,传统的方式是这样定义的:
class a
{
private $field;
public function get_field() { return $this->$field; }
public function set_field($value) { $this->field = $value; }
}
虽然实现起来挺容易,但是说实在的,为一个字段去写这一堆代码还真不爽。。
于是便思索着是不是有一种更方便的方式来解决,并且可以方便地定义它的类型限制什么的。
捣鼓了半天(没办法,对它不熟。。),终于弄出一个类来解决这个问题:
class abstract_entity
{
private $fields;
private $sys_type = array(
"bool" => "",
"array" => "",
"double" => "",
"float" => "",
"int" => "",
"integer" => "",
"long " => "",
"null" => "",
"object" => "",
"real" => "",
"resource" => "",
"string" => ""
// "mixed" and "number"
);
protected function __construct($fields)
{
/*********************************\
* $fields = array(
* "id" = array(
* "allow_null" = false,
* "value" = 1,
* "type" = "int"
* );
* );
\**********************************/
$this->fields = $fields;
}
public function __get($key)
{
if(array_key_exists($key, $this->fields))
{
return $this->fields[$key]["value"];
}
else
{
throw new Exception("该属性不存在");
}
}
public function __set($key, $value)
{
if(array_key_exists($key, $this->fields))
{
$allow_null = $this->fields[$key]["allow_null"];
$type = $this->fields[$key]["type"];
if(array_key_exists($type, $this->sys_type))
{
$fun = create_function('$value', "return is_$type($value);");
if(@$fun($value))
{
$this->fields[$key]["value"] = $value;
}
else if($allow_null && is_null($value))
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值类型不正确,必须为" . $type . "类型");
}
}
else if($type == "mixed")
{
if(!is_null($value))
{
$this->fields[$key]["value"] = $value;
}
else if($allow_null)
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值不允许为NULL值");
}
}
else if($type == "number")
{
if(is_int($value) || is_float($value))
{
$this->fields[$key]["value"] = $value;
}
else if(is_null($value) && $allow_null)
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值类型不正确,必须为" . $type . "类型");
}
}
else
{
if(class_exists($type) || interface_exists($type))
{
if(is_subclass_of($value, $type))
{
$this->fields[$key]["value"] = $value;
}
else if(is_null($value) && $allow_null)
{
$this->fields[$key]["value"] = NULL;
}
else
{
throw new Exception("该值类型不正确,必须为" . $type . "类型");
}
}
else if(is_null($value) && $allow_null)
{
$this->fields[$key]["value"] = NULL;
}
}
}
else
{
throw new Exception("该属性不存在");
}
}
}
通过定义一个一定格式的array可以比较方便地定义该字段的类型、是否允许NULL值以及默认值。
测试代码如下:
class test extends abstract_entity
{
public function __construct()
{
$define = array(
"id" => array(
"allow_null" => false,
"value" => 1,
"type" => "int"
),
"name" => array(
"allow_null" => false,
"value" => "abc",
"type" => "string"
),
"gender" => array(
"allow_null" => false,
"value" => true,
"type" => "bool"
),
"ins" => array(
"allow_null" => false,
"value" => $this,
"type" => "test"
),
"ins1" => array(
"allow_null" => true,
"value" => $this,
"type" => "test"
),
"ins2" => array(
"allow_null" => true,
"value" => NULL,
"type" => "config_media_type"
)
);
parent::__construct($define);
}
}
$a = new test();
$a->id = 123;
eche $a->id;
echo $a->ins1;
$a->ins1 = NULL;
echo is_null($a->ins1);
这里边实现了getter以及setter,但由于时间关系我没去实现readonly的功能,其实很简单,就是再加一项,标识它能不能被改写就成
[3]php公用函数列表[正则]
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
/*********************************************************************
* 公用函数列表
* ubb,getip,GoIn,goback,IsInt,InString
* OurHome:http://iwind.org
* http://10.13.31.90/~coldwind
*
* */
/////////////////ubb支持代码函数////////////////////////////
function ubb($Text) {
$Text=trim($Text);
$Text=htmlspecialchars($Text);
$Text=ereg_replace("\n","<br>",$Text);
$Text=preg_replace("/\\t/is"," ",$Text);
$Text=preg_replace("/\[h1\](.+?)\[\/h1\]/is","<h1>\\1</h1>",$Text);
$Text=preg_replace("/\[h2\](.+?)\[\/h2\]/is","<h2>\\1</h2>",$Text);
$Text=preg_replace("/\[h3\](.+?)\[\/h3\]/is","<h3>\\1</h3>",$Text);
$Text=preg_replace("/\[h4\](.+?)\[\/h4\]/is","<h4>\\1</h4>",$Text);
$Text=preg_replace("/\[h5\](.+?)\[\/h5\]/is","<h5>\\1</h5>",$Text);
$Text=preg_replace("/\[h6\](.+?)\[\/h6\]/is","<h6>\\1</h6>",$Text);
$Text=preg_replace("/\[center\](.+?)\[\/center\]/is","<center>\\1</center>",$Text);
$Text=preg_replace("/\[url\](http:\/\/.+?)\[\/url\]/is","<a href=/index.html\1>\\1</a>",$Text);
$Text=preg_replace("/\[url\](.+?)\[\/url\]/is","<a href=/index.html"http://\\1\">http://\\1</a>",$Text);
$Text=preg_replace("/\[url=(http:\/\/.+?)\](.*)\[\/url\]/is","<a href=/index.html\1>\\2</a>",$Text);
$Text=preg_replace("/\[url=(.+?)\](.*)\[\/url\]/is","<a href=http://\\1>\\2</a>",$Text);
$Text=preg_replace("/\[img\](.+?)\[\/img\]/is","<img src=\\1>",$Text);
$Text=preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/is","<font color=\\1>\\2</font>",$Text);
$Text=preg_replace("/\[size=(.+?)\](.+?)\[\/size\]/is","<font size=\\1>\\2</font>",$Text);
$Text=preg_replace("/\[sup\](.+?)\[\/sup\]/is","<sup>\\1</sup>",$Text);
$Text=preg_replace("/\[sub\](.+?)\[\/sub\]/is","<sub>\\1</sub>",$Text);
$Text=preg_replace("/\[pre\](.+?)\[\/pre\]/is","<pre>\\1</pre>",$Text);
$Text=preg_replace("/\[email\](.+?)\[\/email\]/is","<a href=/index.html\1>\\1</a>",$Text);
$Text=preg_replace("/\[i\](.+?)\[\/i\]/is","<i>\\1</i>",$Text);
$Text=preg_replace("/\[b\](.+?)\[\/b\]/is","<b>\\1</b>",$Text);
$Text=preg_replace("/\[quote\](.+?)\[\/quote\]/is","<blockquote><font size='1' face='Courier New'>quote:</font><hr>\\1<hr></blockquote>", $Text);
$Text=preg_replace("/\[code\](.+?)\[\/code\]/is","<blockquote><font size='1' face='Times New Roman'>code:</font><hr color='lightblue'><i>\\1</i><hr color='lightblue'></blockquote>", $Text);
$Text=preg_replace("/\[sig\](.+?)\[\/sig\]/is","<div ><br><br>--------------------------<br>\\1<br>--------------------------</div>", $Text);
return $Text;
}
////////////////取得浏览者的ip地址/////////////////////////////
function getip() {
$IP=getenv('REMOTE_ADDR');
$IP_ = getenv('HTTP_X_FORWARDED_FOR');
if (($IP_ != "") && ($IP_ != "unknown")) $IP=$IP_;
return $IP;
}
function goback($num,$saying){
echo"<table align=\"center\"><tr><td><a href=/index.html"javascript:history.go(-1)\">$saying</a>";
}
///////////////////判断字符串中是否含有array中的某一值/////////////////
function InString($array,$string){
while(list(,$value)=each($array)){
if(eregi($value,$string)){
return true;
exit;
}
}
}
////////////////////链接到某一页面///////////////////////////////////////
function GoIn($addr,$saying){
echo"<table align=\"center\"><tr><td><a href=/index.html"$addr\">$saying</a></td></tr></table>";
}
////////////////////JS返回//////////////////////////////////////////////
function IsInt($string){
if(ereg("^[0-9]{0,}$",$string)){
return true;
}
else {
return false;
}
}
?>
最新技术文章: