php 获得当前的脚本网址和相对路径转化成绝对路径正则

 更新时间:2016年11月25日 17:11  点击:1651

<?
function relative_to_absolute($content, $feed_url) { 
preg_match('/(http|https教程|ftp):///', $feed_url, $protocol); 
$server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url); 

$server_url = preg_replace("//.*/", "", $server_url); 
    if ($server_url == '') { 
        return $content; 
    } 
    if (isset($protocol[0])) { 
$new_content = preg_replace('/href="//', 'href="'.$protocol[0].$server_url.'/', $content); 
$new_content = preg_replace('/src="//', 'src="'.$protocol[0].$server_url.'/', $new_content); 
    } else { 
$new_content = $content; 
    } 
    return $new_content; 

?>

//获得当前的脚本网址

<?
function get_php_url(){
        if(!empty($_server["request_uri"])){

 

$scriptname = $_server["request_uri"];
$nowurl = $scriptname;
        }else{
$scriptname = $_server["php_self"]; //
                if(empty($_server["query_string"])) $nowurl = $scriptname;
                else $nowurl = $scriptname."?".$_server["query_string"];
        }

//

        return $nowurl;
}

?>

 

 

php教程获取checkbox多选项值时必须以数组形式了,下如test[]再用php post获取就ko了,下面看代码。

<form method="post" action="checktest.php">
<input name="test[]" type="checkbox" value="1" />
<input type="checkbox" name="test[]" value="2" />
<input type="checkbox" name="test[]" value="3" />
<input type="checkbox" name="test[]" value="4" />
<input type="checkbox" name="test[]" value="5" />
<input type="submit" name="submit" value="submit" />
</form>

注意上面input的name属性,各个属性内容都一样,而且都是test[],加上[]的原因在于让test的内容变成数组形式传递。
checktest.php的代码内容如下:

$str =implode(',',$_post['test']);

print_r($str);

12345

哦。下面看我一朋友写的。

php代码

<input type="checkbox" name="weeks[]" id="weeks" value=1>  
<input type="checkbox" name="weeks[]" id="weeks" value=2>  
<input type="checkbox" name="weeks[]" id="weeks" value=3>   

 

weeks后的中括号不可漏,否则用php获取的时候只能取到最后一个值。之后php就很好处理了,如下:

php代码

方法一:  
$weeks = $_post['weeks'];  
for($i=0;$i<count($weeks);$i++)  
echo $weeks[1]."<br>";   
  
方法二:  
$array = $this->request->getparameter("weeks[]");  
$str =implode(',',$array);  
echo $str;  

 

join() 函数把数组元素组合为一个字符串。

join() 函数是 implode() 函数的别名。

例子

<?php教程
$arr = array('hello','world!','beautiful','day!');
echo join(" ",$arr);
?>输出:

hello world! beautiful day!

下面是一段dedecms搜索页面的条件利用了join函数

if($this->starttime > 0)
  {
   $ksqls[] = " arc.senddate>'".$this->starttime."' ";
  }
  if($this->typeid > 0)
  {
   $ksqls[] = " typeid in (".getsonids($this->typeid).") ";
  }
  if($this->channeltype > 0)
  {
   $ksqls[] = " arc.channel='".$this->channeltype."'";
  }
  if($this->mid > 0)
  {
   $ksqls[] = " arc.mid = '".$this->mid."'";
  }
  $ksqls[] = " arc.arcrank > -1 ";
  $this->addsql = ($ksql=='' ? join(' and ',$ksqls) : join(' and ',$ksqls)." and ($ksql)" );

它这里就构成了一条select * from 表 where 条件,根据$ksql多少来构造成一条完整的sql查询语句

注释:join() 可以接收两种参数顺序。但是由于历史原因,explode() 是不行的。你必须保证 separator 参数在 string 参数之前才行。

 

数据库教程中的表可通过键将彼此联系起来。主键(primary key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

php教程 数据类型和变量
php是弱类型的,一个变量不需要预先声明,也不需要指定类型。php中变量是$加上变量名,php的变量是区分大小写的。 例如上例中的 $my='my'。
php支持的变量类型包括:布尔型,整型,浮点型,字符串,数组和对象。前四种很常用,也和其他语言类似,不多做介绍。数组和对象后文具体介绍。
php中有函数来检测 对象的类型,它们是 getttype。gettype返回一个string,它的值可以是array,boolean,double,integer,object,resource,string 和 unknow type. php也支持显式的类型转换,语法和c类似。
转换操作符 转换为
(array) 数组
(bool) (boolean) 布尔型
(int) (integer) 整数
(object) 对象
(float),(double),(real) 浮点数
(string) 字符串
例如:
 代码如下:
<?php
$str ='a string';
$num=15;
$numstr='123.3';
echo gettype($str),'<br/>';
echo gettype($num),'<br/>';
echo gettype($numstr),'<br/>';
$numstr=(float)$numstr;
echo gettype($numstr);
?>

输出结果为:

string
integer
string
double

还有函数可以用来判断一个变量是不是某种类型,例如 is_array(),is_bool()等等,用法都类似。

3. 函数和变量作用域
php声明函数的方法很简单,形式如下:
 代码如下:
function functionname(parameters){
function body
}

不需要指定返回类型,括号中也不需要指定变量类型,只要有变量名就可以。例如:
 代码如下:
<?php
function taxedprice($price,$taxrate){
return $price*(1+$taxrate);
}
echo taxedprice(100, 0.03);
?>

默认情况下,php是按值传递参数的,在函数内改变参数的值并不会改变函数外变量的值,但是php也支持按引用传递,语法和c一致,&$paramname,例如,下面一个经典的例子:
 代码如下:
<?php
function swap1($x,$y){
$t=$x;$x=$y;$y=$t;
}
function swap2(&$x,&$y){
$t=$x;$x=$y;$y=$t;
}
$a=3;$b=5;
swap1($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
swap2($a,$b);
printf("a is %d, b is %d <br/>",$a,$b);
?>

输出结果:

a is 3, b is 5
a is 5, b is 3

php的函数还支持参数的默认值,语法和c也是一样的。例如:
 代码如下:
<?php
function taxedprice($price,$taxrate=0.03){
return $price*(1+$taxrate);
}
echo taxedprice(100);
?>

下面介绍变量的作用域。php的变量作用域和c很类似,有局部变量,函数参数,全局变量,静态变量4种。局部变量就是在函数内声明的变量,函数参数是在函数首部声明的变量;不在函数中声明的变量是全局变量,全局变量可以在任何地方访问到,但是和c不同的是,如果在函数中要修改全局变量的值需要用global关键字显式指定它是全局变量,否则php就会声明一个同名的局部变量并且覆盖它。例如:
 代码如下:
<?php
$taxrate=0.03; //global
function change1() {
$taxrate+=1;
}
function change2() {
global $taxrate;
$taxrate+=1;
}
change1();
echo $taxrate,'<br/>';
change2();
echo $taxrate,'<br/>';
?>

输出的结果是:

0.03

1.03

php还有一种超级全局变量。超级全局变量是由php系统预定义的,主要用来访问与环境有关的信息,例如当前用户会话,用户操作环境和本地环境等。超级全局变量是一个数组,例如$_server中存储了服务器相关的信息。$_get,$_post,$_files,$_cookie中分别存储了客户端采用get提交,和post的提交的信息,上传的文件,cookie信息等。这些变量的使用都很简单,需要什么信息只需要查找

4 变量的变量
和c一类的静态语言不同,php的变量名本身可以是一个变量,这对于需要动态生成很多变量的时候是很便利的。例如:
 代码如下:
<?php
$r="hello";
$$r="i am hello";
echo $hello;
?>

输出结果为: i am hello

5.流程控制语句
主要包括,if else, while,for,do while,switch. 这些和c语言都很像,基本是一致的。不多做介绍。有些不同,php的 elseif是一个关键字,是连在一起的,而c语言是else if

php教程 ereg()邮箱验证与文件名验证
字符串比对解析。

语法: int ereg(string pattern, string string, array [regs]);

返回值: 整数/数组

函数种类: 资料处理


 
 
内容说明


本函数以 pattern 的规则来解析比对字符串 string。比对结果返回的值放在数组参数 regs 之中,regs[0] 内容就是原字符串 string、regs[1] 为第一个合乎规则的字符串、regs[2] 就是第二个合乎规则的字符串,余类推。若省略参数 regs,则只是单纯地比对,找到则返回值为 true。
 
 
使用范例
这个例子是 markus@dnet.it 在 14-jun-1999 所提出的,可对使用者输入的 e-mail 作简单的检查,检查使用者的 e-mail 字符串是否有 @ 字符,在 @ 字符前有英文字母或数字,在之后有数节字符串,最后的小数点后只能有二个或三个英文字母。super@mail.wilson.gs 就可以通过检查,super@mail.wilson 就不能通过检查。

<?php
if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) {
  echo "您的 e-mail 通过初步检查";
}
?>

看一下

dedecms文件验证

if(!eregi("^[a-z0-9_-]{1,}.lib.php$",$filename))
  {
   showmsg('文件不是标准的标签碎片文件,不允许在此编辑!','-1');
   exit();
  }
  $fp = fopen(dedeinc.'/taglib/'.$filename,'r');
  $democode = fread($fp,filesize(dedeinc.'/taglib/'.$filename));
  fclose($fp);
  $title = "修改标签";

 

[!--infotagslink--]

相关文章

  • 谈谈PHP中相对路径的问题与绝对路径的使用

    经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
  • C#实现String字符串转化为SQL语句中的In后接的参数详解

    在本篇文章中小编给大家分享的是一篇关于C#实现String字符串转化为SQL语句中的In后接的实例内容和代码,需要的朋友们参考下。...2020-06-25
  • 提高网站转化率

    在线预订系统即便存在一点点小错误,也可以导致有价值客户的流失。Jones在其主题为“别让我想,也别让我等”的演讲中,强调客户满意度必然可以换来客户忠诚度。...2016-10-10
  • C++ 数据类型强制转化的实现

    这篇文章主要介绍了C++ 数据类型强制转化的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • 相对路径和绝对路径的写法总结

    本文主要对相对路径和绝对路径的写法进行总结。具有一定的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • ASP.NET中相对路径的使用总结

    在.cs页面中输入Response.Write(Request.MapPath(1.jpg))这可以输出图片的物理路径也就是这张图片在服务器上存放的具体路径,下面为大家讲解下相对路径的应用...2021-09-22
  • C# 汉字转化拼音的简单实例代码

    C# 汉字转化拼音的简单实例代码,需要的朋友可以参考一下...2020-06-25
  • C#实现把科学计数法(E)转化为正常数字值

    这篇文章主要介绍了C#实现把科学计数法(E)转化为正常数字值,本文直接给出代码实例,需要的朋友可以参考下...2020-06-25
  • php中相对路径及绝对路径的使用

    相对路径及绝对路径在php中我们常用到了对于相对路径及绝对路径具体什么时候使用有什么区别我们在这里来看一篇教程。 前言 最近老是看到有人踩在路径的坑上面了,...2016-11-25
  • 用PHP将Unicode 转化为UTF-8的实现方法(推荐)

    下面小编就为大家带来一篇用PHP将Unicode 转化为UTF-8的实现方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-02-18
  • 汉字转化为拼音(php版)

    很多服务器对于中文文件名支持不是很好,有没有好的办法来解决呢???现在的解决方法一般是产生一个ID,将这个ID做文件名;网页上如果url带汉字也经常出错;现在的解决方法一般用...2016-11-25
  • 网站转化率低,怎么搞高网站转化率?

    网站转化率低,怎么搞高网站转化率?每个站长初期都是有遇到的,我们需要针对性的分析自己的网站,做出合理的解决方案,从而有效的提高我们网站的转化率,抓化率高了自然而言的...2016-10-10
  • Url相对路径的问题总结

    很多时候,我们在图片或者其他(a标签,flash)中指定链接的时候,我们需要选择是使用绝对路径,或者是相对路径....2020-06-25
  • php把相对路径转换成绝对路径方法

    我们经常会碰到采集内容时,要补全地址是吧,下面我们来看看这款php把相对路径转换成绝对路径方法吧。 相对路径转化成绝对路径 代码如下 复制代码 ...2016-11-25
  • JS获取当前脚本文件的绝对路径

    这篇文章主要介绍了JS获取当前脚本文件的绝对路径的相关资料,感兴趣的小伙伴们可以参考一下...2016-03-03
  • Java前后端时间格式的转化方式

    这篇文章主要介绍了Java前后端时间格式的转化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-11
  • php 获取相对路径实例代码

    代码如下 复制代码 function getRelativePath($a, $b) { ...2016-11-25
  • java中Date类和Strng类的灵活转化

    这篇文章主要介绍了java中Date类和Strng类的灵活转化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-24
  • html中base标签解决相对路径问题

    网站是由两套独立的系统组合而来,一套门户,一套自定义开发,分别位于不同的服务器。 域名只能有一个,于是使用nginx做了代理,根据location做了转发,比如/portal就转发到门户...2016-09-20
  • IIS下PHP is_dir()/mkdir() 绝对路径目录BUg

    在iis+php环境中is_dir()与mkdir()的用法在与apache中用法是一样的,但是反应的路径会有所区别,下面我简单介绍一下。 is_dir('/abc');正常情况下应该是判断web应用...2016-11-25