例1,
<?php
/**
Url中取主机域名
http://www.
*/
function getExt($url){
$arr = parse_url(/blog_article/$url/index.html);
$file = $arr['host'];
$ext = substr($file,strpos($file,".")+1);
return $ext;
}
//调用示例
$url="http://www.baidu.com/path.php?arg=value#anchor";
$qa=getExt($url);
var_dump($qa);
?>
例2,
<?php
// 从 URL 中取得主机名
preg_match("/^(http:\/\/)?([^\/]+)/i",
" http://www.php.net/index.html", $matches);
$host = $matches[2];
// 从主机名中取得后面两段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>
您可能感兴趣的文章:
PHP获取域名的几个全局变量
php 实现dns域名查询的方法详解(图文)
php 从url中获取域名的实例代码
php获取站点的来路域名的方法
探讨:PHP获取域名及域名IP地址的方法
PHP正则匹配获取URL中域名的代码
PHP获取当前网址及域名的代码
php正则表达式匹配URL中的域名
PHP调用万网接口实现域名查询的功能
代码如下:
<?php
$time = strtotime("2011-03-31");
/**
* 计算上一个月的今天,如果上个月没有今天,则返回上一个月的最后一天
* @param type $time
* @return type
* http://www.
*/
function last_month_today($time){
$last_month_time = mktime(date("G", $time), date("i", $time),
date("s", $time), date("n", $time), 0, date("Y", $time));
$last_month_t = date("t", $last_month_time); //二月份的天数
if ($last_month_t < date("j", $time)) {
return date("Y-m-t H:i:s", $last_month_time);
}
return date(date("Y-m", $last_month_time) . "-d", $time);
}
echo last_month_today($time);
var_dump(date("H",time()).date("a",time()));
var_dump(date("Y-m-d H:i:s ",mktime(0,0,0,4,-31,2011)));
?>方法1、直接用php的内置函数array_intersect()
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
例子:
<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
?>
输出结果:
Array( [a] => green [0] => red)
方法2、自己实现的算法
<?php
function my_array_same($a){
$b = array_unique($a);
$r = array_diff_key($a,$b);
echo "<pre>";
$k=var_dump(array_unique($r));
return $k;
}
$a = array("red", "green", "pink", "red", "yellow","pink", "red");
$r=my_array_same($a);
var_dump(array_unique($r));
?>
输出结果:
array(2) {
[3]=>
string(3) "red"
[5]=>
string(4) "pink"
}
3、自定义递归函数
<?php
function my_array_intersect($arr1,$arr2){
for($i=0;$i<count($arr1);$i++){
$temp[]=$arr1[$i];
}
for($i=0;$i<count($arr1);$i++){
$temp[]=$arr2[$i];
}
sort($temp);
$get=array();
for($i=0;$i<count($temp);$i++){
if($temp[$i]==$temp[$i+1])
$get[]=$temp[$i];
}
return $get;
}
$array1 = array("green", "red", "blue");
$array2 = array("green", "yellow", "red");
echo "<pre>";
print_r(my_array_intersect($array1, $array2));
echo "<pre/>";
?>
说明:
一维数组的话,第三种算法比第一种快点。
上述算法都适用于一维的数组,那么多维数组怎么查找相同的元素呢?
这里提供一种思路:可以把多维的数组转化成一维的数组,然后再利用上述算法输出。
例子:
<?php
function toarr($arr){ //对数组进行递归,以字符串形式返回
foreach ($arr as $k=>$v){
if (!is_array($v)) {
$str.=$v." ";
}
else{
$str.=toarr($v);
}
}
return $str;
}/*递归函数结束*/
?>
以上代码实现多维数组转化成字符串,然后使用expode函数转化成一维数组即可。
试想一下,数据库返回某一字段重名的值也是这个道理,这个通过sql语句也是可以实现的。
编程就是这样,条条大道通罗马,举一返三,触类而旁通,多学多练多实践,功到自然成啊。
,祝大家学习进步。