4错误大总结

1.用0到9十个数字构造一个二级目录,每个目录名字有2位数字如00/79并把所有的目录打印出来

2.写出几种抓取远程程序的几种方法?(file_get——contents的第二个参数是?)

3.使用css 来隐藏一个div的方法?

4.php没有安装xml用什么方法能够解析 xml模块(服务器端)?



1.css隐藏一个div的方法

<!doctype html>
<html lang="zh-CN">
<head>
<title>div隐藏、显示</title>
<style>
.main{width:200px;height:150px;border:1px solid red;margin:0 auto; display:none;}

</style>
<!-- dislpay:block 是显示div display:none是隐藏该div-->
</head>
<body>
<div class="main">
</div>
</body>
</html>


2.写出几种抓取远程程序的几种方法

(1)file_get_contents()

<?php   
echo file_get_contents("http://www.baidu.com");   
?>

file_get_contents() 函数把整个文件读入一个字符串中。

和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。

file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能

file_get_contents(path,include_path,context,start,max_length)
参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context

可选。规定文件句柄的环境。

context 是一套可以修改流的行为的选项。若使用 null,则忽略。

start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。

3.

fopen() 函数打开文件或者 URL。

如果打开失败,本函数返回 FALSE。

语法

fopen(filename,mode,include_path,context)
参数 描述
filename 必需。规定要打开的文件或 URL。
mode 必需。规定要求到该文件/流的访问类型。可能的值见下表。
include_path 可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。
context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

mode 参数的可能的值

mode 说明
"r" 只读方式打开,将文件指针指向文件头。
"r+" 读写方式打开,将文件指针指向文件头。
"w" 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"a" 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"a+" 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"x"

创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

"x+"

创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

案例:

<?php
$handle = fopen ("http://s.jb51.net/", "rb"); 
$contents = ""; 
while (!feof($handle)) { 
$contents .= fread($handle, 8192); 

fclose($handle); 
echo $contents; //输出获取到得内容。  
?>
<?php
// 对 PHP 5 及更高版本可以使用下面的代码 


$handle = fopen("http://s.jb51.net", "rb"); 
$contents = stream_get_contents($handle); 
fclose($handle); 
echo $contents; 
?> 
扩展:

stream_get_contents()

file_get_contents()函数 相同,不同之处在于 stream_get_contents()上运行一个已经打开的流资源,并返回一个字符串中剩余的内容, 最大长度字节,在指定的偏移量开始





——————————————————————————————————

strock()

<?php
function GETBySocket($URL, $port=80) {
    //get host from url
    preg_match('/\/\/.*\//sU',$URL,$host_array);
    if(!$host_array[0]) {
        $URL.='/';
        preg_match('/\/\/.*\//sU',$URL,$host_array);
    }
    $host=substr($host_array[0],2,-1);
    //connect
    $fp = stream_socket_client("$host:$port", $errcode, $errstr, 1);// or die("get ". $host ." failed");
    //
    $header = "GET ". $URL. " HTTP/1.1\r\n"; 
    $header .= "Accept: */*\r\n"; 
    $header .= "Accept-Language: zh-cn\r\n";
    //$header .= "HTTP_CONNECTION: Keep-Alive\r\n"; 
    $header .= "HTTP_ACCEPT: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n"; 
    $header .= "HTTP_ACCEPT_CHARSET: gbk,*,utf-8\r\n";
    //$header .= "Accept-Encoding: gzip, deflate\r\n"; 
    $header .= "User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1;)\r\n"; 
    $header .= "Host: ". $host ."\r\n"; 
    //$header .= "Connection: Keep-Alive\r\n"; 
    //$header .= "Cookie: cnzz02=2; rtime=1; ltime=1148456424859; cnzz_eid=56601755-\r\n\r\n"; 
    $header .= "Connection: close\r\n\r\n";
    stream_socket_sendto($fp, $header);
    ///$content=stream_socket_recvfrom($fp,1000,STREAM_PEEK);
    $content=stream_get_contents($fp);
    fclose($fp);
    $position_header=strpos($content, "\r\n\r\n");
    if (stripos(substr($content, 0 ,$position_header), 'Transfer-Encoding: chunked')) {
        return substr($content, strpos($content, "\r\n", $position_header +4)+2);
    }  else {
        return substr($content, $position_header +4);
    }   
}
echo GETBySocket('http://www.qq.com/');

————————————————————————————————————

curl类库

<?php
    function get_url_content($url){    
    $user_agent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";     
    $ch = curl_init();    
    //curl_setopt ($ch, CURLOPT_PROXY, $proxy);    
    curl_setopt ($ch, CURLOPT_URL, $url);//设置要访问的IP    
    curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);//模拟用户使用的浏览器     
    @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 ); // 使用自动跳转      
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60); //设置超时时间    
    curl_setopt ( $ch, CURLOPT_AUTOREFERER, 1 ); // 自动设置Referer      
    curl_setopt ($ch, CURLOPT_COOKIEJAR, 'c:\cookie.txt');    
    curl_setopt ($ch, CURLOPT_HEADER,0); //显示返回的HEAD区域的内容    
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);    
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);    
    curl_setopt ($ch, CURLOPT_TIMEOUT, 10);    
    $result = curl_exec($ch);    
    curl_close($ch);    
    return $result;    
}
?>


jquery  表单  submit方法问题

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs
/jquery/1.4.0/jquery.min.js"></script>
   
    <script type="text/javascript">
    $(document).ready(function(){
        $('#submit').click(function(){
        $('#form').submit()
    })
    })
    </script>
<body>
 <form id="form" method="get" method="a.php">
    <input type="text" name="q" value="设计蜂巢"/><button type="button" id="submit">查询</button>
    </form>
</body>
</html>

上述代码看上去貌似没什么问题,简直是普通了不能再普通的代码。可是点击查询按钮的时候死活不提交表单,按钮type改为submit表单提交正常,啥原因呢?

表单和其子元素不宜用一个表单的属性的属性作为name或id的名称,如submit, length, or method,是、会产生冲突。名称冲突可能会导致混乱的失败。对于一个完整的规则列表,并检查这些问题标记,看DOMLint。

-_-^ 原来就是这个id=”submit”的原因,不知道你有木有犯这种低级的错误.











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值