PHP_常见问题(1)

1)扫描一个文件夹下的所有文件夹和文件:

<?php
function scan($path){
    static $arr=array();    //静态数组,用于存储扫描到的和文件夹
    $filearr=scandir($path);
    foreach ($filearr as $value){
        if($value==‘.‘ || $value==‘..‘){
            continue;
        }
        if(is_file($path.‘/‘.$value)){
            $arr[]=‘<font color=green>‘.$path.‘/‘.$value.‘</font>‘;
        }
        else {
            $arr[]=‘<font color=red>‘.$path.‘/‘.$value.‘</font>‘;
            scan($path.‘/‘.$value);
        }
        //            if(is_dir($path.‘/‘.$value)){
        //                scan($path.‘/‘.$value);
        //            }
    }
    return $arr;
}
$row=scan(‘../../‘);
$count=count($row);
echo ‘共查到‘.$count.‘个文件!<br/>‘;
foreach ($row as $value)
echo $value.‘<br/>‘;

2)删除非空文件夹:

<?php
function del($path) {
    $res = @opendir ( $path );
    if (! $res) {
        echo ‘文件或文件夹不存在,删除失败!‘;
        exit ();
    }
    while ( $file = readdir ( $res ) ) {
        if ($file != "." && $file != "..") {
            $fullpath = $path . "/" . $file;
            if (! is_dir ( $fullpath )) {
                unlink ( $fullpath );
            } else {
                del ( $fullpath );
            }
        }
    }
    closedir ( $res );
    if (rmdir ( $path )) {
        return true;
    } else {
        return false;
    }
}

$path = "./a/";
if (del ( $path )) {
    echo "删除成功!";
} else {
    echo "删除失败!";
}

?>

3)Curl发送post请求:

<?php

$data=array("appType"=>1,"IsJSON"=>1,"phone"=>18300000000);
$url = "http://app.ron20.com:809/smspost.php?";
$res=doCurlPostRequest($url, $data, 10);
var_dump($res);

function doCurlPostRequest($url, $requestString, $timeout = 5)
    {
    if ($url == "" || $requestString == "" || $timeout <= 0) {
        return false;
    }
    $con = curl_init((string)$url);
    curl_setopt($con, CURLOPT_HEADER, false);
    curl_setopt($con, CURLOPT_POSTFIELDS, $requestString);
    curl_setopt($con, CURLOPT_POST, true);
    curl_setopt($con, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($con, CURLOPT_TIMEOUT, (int)$timeout);
    curl_exec($con);
    }

4)php调用WEBSERVICE服务:

<?php

class webSrvClass
{
    //webservice 地址参数,调用webservice
    function soap($function, $par = array())
    {
        //链接 web service  需要注意下面的url地址是.net提供的,后面加个?wsdl才是描述定义文件哈,请各自取正确的wsdl地址(每种web服务都有的)
        $client = new SoapClient("http://www.sz56it11.net:8088/Transjp.svc?wsdl", array(‘exceptions‘ => 0));
        $require = $client->$function($par);
        //调用信息debug
        if (is_soap_fault($require)) {
            echo "远程接口" . $function . "调用失败!";
            exit();
        }
        //获取返回值
        $function_result = $function . "Result";
        $str = $require->$function_result;
        return $str;
    }

     //接口通讯记录
    /*function soap_log($class, $function, $in, $out)
    {
        $log = date("Y-m-d H:i:s");
        $log .= " " . $class . "->" . $function . " input:";
        $input = "";
        if ($in != array()) {
            foreach ($in as $key => $vlaue) {
                $input .= $key . "=" . $vlaue;
            }
            $log .= $input . " output:" . var_export($rows) . "\n";
        }
    }*/
}

//调用方法
$webserv = new webSrvClass;
//这里是调用方法给传递的参数
$a = array("trackid" => "121211", "username" => "jpwl1", "password" => "jpwl888111");
echo ‘server echo:‘ . ($webserv->soap("querystatus", $a));

?>

5)php获取页面完整url:

<?php
    function get_page_url(){
        $url=(isset($_SERVER[‘SERVER_PORT‘])&&$_SERVER[‘SERVER_PORT‘]==‘443‘)? ‘https://‘:‘http://‘;
        $url.=$_SERVER[‘HTTP_HOST‘];
        $url.=isset($_SERVER[‘REQUEST_URL‘])?$_SERVER[‘REQUEST_URL‘]:$_SERVER[‘PHP_SELF‘].‘?‘.$_SERVER[‘QUERY_STRING‘];
        return $url;
    }
?>

6)php无限极分类:

//无限极函数
private function treelist($data, $cid, $deep = 1) {
        static $tree = array ();
        foreach ( $data as $row ) {
            if ($row [‘cid‘] == $cid) {
                $row [‘lever‘] = $deep;
                $tree [] = $row;
                $this->treelist ( $data, $row [‘id‘], $deep + 1 );
            }
        }
        return $tree;
    }
//取得数据
public function getList() {
        // 获取所有分类数据
        $data = $this->fetchAll ();
        //list就是所有排序之后的数据
        $list = $this->treeList ( $data, 0 );
        return $list;
    }

//在页面中展示
<div class="subnav">
     {foreach from=$cdata item=‘value‘}
    {if $value[‘lever‘]==1}
       <div>
        <span class="left"> {$value[‘name‘]} </span>
        <span class="right subnav_right">
        <img src="Public/Home/view/images/line.gif" border="0"
            id="categorie_ico3"></span>
       </div>
    {/if}

    <ul id="m3" style="display: block">
        {if $value[‘lever‘]==2}
              <li>&nbsp;<a href="#"> {$value[‘name‘]} </a></li>
        {/if}
    </ul>
     {/foreach}
</div>

时间: 2024-10-13 22:05:22

PHP_常见问题(1)的相关文章

PHP常见问题及解答

当作PHP学习时,总是会在baidu上查很多的例如开发环境的选择呀,PHP好不好呀!或者是不是转学JAVA,或是.NET等: 首先本人是从2010年下半年开始报名学的PHP(IN Guangzhou),每周一天学了近6个月左右,从最基础的HTML,CSS,DIV,JAVASCRIPT,AJAX,PHP,然后学二次开发:闲暇之余还开通了一个个人blog( PHP wordpress); 由于个人工作原因,这几年放了一段时间未动PHP了,今年开始又自学了.NET; ---目的就想业余做一份兼职,锻炼

微信JS-SDK说明文档及常见问题处理

概述 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项. 使用说明 在使用微信JS-SDK对应的JS接口前,需确保公众号已获得使用对应JS接口的权限,可登录微信公众平台进入“开发者中心”查看对应的接口权限. 注意:

NHibernate常见问题及解决方法

NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query)."错误查了好半天终于查到了.这篇文章是我转载的NHibernate的常见错误... hbm.xmlNHibernate文件中版本号可能引起的

NTB调试常见问题指南

作为实现不同PCI域乃至跨节点数据传输的重要器件,NTB在服务器和存储领域实现双控.内存互访等方面发挥着重要的作用.由于它本身既作为virtual port出现,又可以被互联的结点通过pci scan看到,作为一个link port出现,加之其上实现的地址转换和转发功能,在实际工程项目中,难免会碰到各种问题.本文结合笔者最近的工作,分享了NTB调试过程中常见的问题和解决思路和办法. 从问题的现象来看,具体常见问题包括: 找不到NTB设备: NTB mailbox无法传送数据: ReqID 无法探

SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

一 开发环境 1.动态web工程 2.部分依赖 java代码: hibernate-release-4.1.0.Final.zip hibernate-validator-4.2.0.Final.jar spring-framework-3.1.1.RELEASE-with-docs.zip proxool-0.9.1.jar log4j 1.2.16 slf4j -1.6.1 mysql-connector-java-5.1.10.jar hamcrest 1.3.0RC2 ehcache 2

转:Web页面通过URL地址传递参数常见问题及检测方法

Web页面即我们在浏览器中所看到的网页,在Web应用程序中,其页面往往需要进行动态切换和数据交互,页面间的数据常规传递方法有多种,本文主要介绍Web页面处理程序中常见的URL地址参数传递方法,包括概述其实现原理.特点和常见问题,最后介绍检测该方式常见应用问题的测试思路和方法. 1.web页面的概念 Web是internet上一个非常重要的资源信息网,产生于20世纪90年代初,它遵循超文本传输协议,以超文本或超媒介的形式传送各种各样的信息,为用户提供了一个具有友好的图形化界面--Web页面,以便用

winpcap使用注意事项及常见问题

1.获取网卡设备名称.名称不是在ipconfig里显示的那样,而是需要调用函数pcap_findalldevs. 2.winpcap捕获3G网卡等拨号网络数据需要安装netmon,http://www.microsoft.com/en-us/download/details.aspx?id=4865. 3.winpcap默认只支持visual c++. 4.winpcap对拨号网络PPP只支持到XP系统.如果想要在Vista以上捕获3G数据包,可以购买能够将3G数据转换成以太网的3G网卡,如:H

ubuntu常见问题汇聚

ubuntu下使用rcconf来控制开机自启动软件 RedHat操作系统,可以使用checkconfig命令来关闭或开启一些系统服务,但是在ubuntu系统下并没有这条命令,介绍一款类似于centos下的ntsysv的一款软件,来控制我们想要设置的开机自启动软件.这款软件叫做rcconf. sudo apt-get install dialog rcconf 使用:直接输入sudo rcconf控制. 还可以使用 Ubuntu 自带的 update-rc.d 用法 update-rc.d XXX

Hadoop 2.2.0 常见问题之:Ubuntu 64环境下“Unable to load native-hadoop library for your platform”问题”

问题 最近在学习Hadoop(2.2.0),打算写一个MapReduce的小程序在Ubuntu 64位的环境下测试一把,一切环境配置完毕后,执行的过程中,控制台输出下面的内容: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 原因 在网上搜索了一番,得出如下结论: "The reason