<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP文件 &#8211; 九创科技</title>
	<atom:link href="https://www.3code.cn/tag/php-file-tag/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.3code.cn</link>
	<description>Wordpress外贸企业主题, Wp企业主题, wordpress企业主题, wordpress主题定制, WORDPRESS外贸网站建设SEO</description>
	<lastBuildDate>Mon, 10 Oct 2011 08:22:07 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>PHP上传文件夹设置禁止执行脚本文件</title>
		<link>https://www.3code.cn/php%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6%e5%a4%b9%e8%ae%be%e7%bd%ae%e7%a6%81%e6%ad%a2%e6%89%a7%e8%a1%8c%e8%84%9a%e6%9c%ac%e6%96%87%e4%bb%b6/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Mon, 10 Oct 2011 08:22:07 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP图片上传]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=2866</guid>

					<description><![CDATA[只需要将上面的内容保存为.htaccess文件，并上传到想要禁止执行的文件夹内即可禁止执行.php.html.htm这三种类型的文件。]]></description>
										<content:encoded><![CDATA[<p>&lt;Files ~ &#8220;.php&#8221;&gt;<br />
Order allow,deny<br />
Deny from all<br />
&lt;/Files&gt;<br />
&lt;Files ~ &#8220;.html&#8221;&gt;<br />
Order allow,deny<br />
Deny from all<br />
&lt;/Files&gt;<br />
&lt;Files ~ &#8220;.htm&#8221;&gt;<br />
Order allow,deny<br />
Deny from all<br />
&lt;/Files&gt;</p>
<p>只需要将上面的内容保存为.htaccess文件，并上传到想要禁止执行的文件夹内即可禁止执行.php.html.htm这三种类型的文件。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP生成PDF实战</title>
		<link>https://www.3code.cn/php%e7%94%9f%e6%88%90pdf%e5%ae%9e%e6%88%98/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Mon, 21 Feb 2011 03:37:21 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=2512</guid>

					<description><![CDATA[PHP生成PDF实战]]></description>
										<content:encoded><![CDATA[<p>PHP生成PDF实战</p>
<p>附有实例。</p>
<p>下载地址：<a href="https://www.3code.cn/download/php2pdf.rar">https://www.3code.cn/download/php2pdf.rar</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ajax+php文件管理系统</title>
		<link>https://www.3code.cn/ajaxphp%e6%96%87%e4%bb%b6%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Fri, 30 Jul 2010 04:42:48 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP删除文件]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1822</guid>

					<description><![CDATA[ajax+php教程文件管理系统]]></description>
										<content:encoded><![CDATA[<blockquote><p>&lt;!doctype html public &#8220;-//w3c//dtd xhtml 1.0 transitional//en&#8221; &#8220;http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.111cn.net/1999/xhtml&#8221;&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=&#8221;content-type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;<br />
&lt;meta http-equiv=&#8221;cache-control&#8221; content=&#8221;no-cache, must-revalidate&#8221;&gt;<br />
&lt;title&gt;ajax+php教程文件管理系统&lt;/title&gt;<br />
&lt;style type=&#8221;text/css教程&#8221;&gt;<br />
@charset &#8220;utf-8&#8221;;<br />
/* css document */<br />
&lt;!&#8211;<br />
body {<br />
padding-right: 0px;<br />
padding-left: 0px;<br />
padding-bottom: 0px;<br />
margin: 0px auto;<br />
color: #777;<br />
line-height: 18px;<br />
padding-top: 0px;<br />
font-family: tahoma, arial, helvetica, sans-serif;<br />
background-color: #fff<br />
}<br />
*+html body {<br />
padding-right: 0px;<br />
padding-left: 0px;<br />
padding-bottom: 0px;<br />
margin: 0px auto;<br />
color: #777;<br />
line-height: 18px;<br />
padding-top: 0px;<br />
font-family: &#8220;微软雅黑&#8221;, ahoma, arial, helvetica, sans-serif;<br />
background-color: #fff<br />
}<br />
a {<br />
text-decoration:none<br />
}<br />
input {<br />
padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px<br />
}<br />
.main {<br />
background-color:#bfe6bc;<br />
margin:100px auto;<br />
width:800px;<br />
height:180px;<br />
border:8px #399c26 solid;<br />
}<br />
.header {<br />
text-align:center;<br />
margin:10px auto;<br />
width:100%;<br />
display:block<br />
}<br />
.header h1 {<br />
font-size:20px;<br />
color:#399c26<br />
}<br />
.header p {<br />
padding:0px;<br />
margin-top:-10px;<br />
}<br />
.header p span{<br />
font-size:12px;<br />
color:#fff<br />
}<br />
.button_list {<br />
margin:10px auto;<br />
width:382px;<br />
height:110px;<br />
display:block<br />
}<br />
.button {<br />
width:100px;<br />
border:8px #399c26 solid;<br />
height:20px;<br />
line-height:20px;<br />
font-size:14px;<br />
float:left;<br />
text-align:center;<br />
margin-left:10px;<br />
margin-bottom:10px;<br />
background-color:#399c26<br />
}<br />
.button a{<br />
color:#fff;<br />
font-weight:bold<br />
}<br />
.footer {<br />
text-align:center;<br />
font-size:12px;<br />
display:block;<br />
margin:10px auto;<br />
}<br />
.black_overlay{<br />
display: none;<br />
position: absolute;<br />
top: 0%;<br />
left: 0%;<br />
width: 100%;<br />
height: 100%;<br />
background-color: black;<br />
z-index:1001;<br />
-moz-opacity: 0.8;<br />
opacity:.80;<br />
filter: alpha(opacity=80);<br />
}<br />
.file_list {<br />
display: none;<br />
position: absolute;<br />
top: 25%;<br />
left: 25%;<br />
width: 50%;<br />
height: 50%;<br />
padding: 16px;<br />
border: 8px solid #399c26;<br />
background-color: white;<br />
z-index:1002;<br />
overflow: auto;<br />
background-color:#bfe6bc;<br />
}<br />
.file_list_t {<br />
margin:0 auto;<br />
display:inline;<br />
}<br />
.file_list_t li {<br />
font-size:14px;<br />
list-style-type:none;<br />
padding:0px;<br />
background-color:#bfe6bc;<br />
border-bottom:1px #ccc solid;<br />
}<br />
*+html .file_list_t li {<br />
font-size:14px;<br />
background:url(images/list_ico_1.gif) #fff no-repeat 7px 50%;<br />
list-style-type:none;<br />
text-indent:5px;<br />
padding:0px;<br />
background-color:#bfe6bc;<br />
border-bottom:1px #ccc solid;<br />
}<br />
*+html .file_list_t li span {<br />
float:right;<br />
font-weight:bold;<br />
margin-top:-20px;<br />
}<br />
.file_list_t li span {<br />
float:right;<br />
font-weight:bold;<br />
margin-top:0px;<br />
}<br />
.file_list_t li a{<br />
color:#399c26;<br />
}<br />
.file_list_close {<br />
display: none;<br />
position: absolute;<br />
top: 22%;<br />
left: 75%;<br />
width: 30px;<br />
height: 16px;<br />
border: 1px solid #399c26;<br />
z-index:1002;<br />
background-color:#399c26;<br />
color:#fff;<br />
line-height:16px;<br />
text-align:center<br />
}<br />
.file_list_close a{<br />
color:#fff;<br />
}</p>
<p>/* file_content_input_form */<br />
.file_content_input_form{<br />
margin:0 auto;<br />
width:450px;<br />
padding:14px;<br />
}<br />
/* input_box */<br />
#input_box{<br />
}<br />
#input_box h1 {<br />
font-size:14px;<br />
font-weight:bold;<br />
margin-bottom:8px;<br />
}<br />
#input_box p{<br />
font-size:11px;<br />
color:#399c26;<br />
margin-bottom:20px;<br />
border-bottom:solid 1px #b7ddf2;<br />
padding-bottom:10px;<br />
}<br />
#input_box label{<br />
display:block;<br />
font-weight:bold;<br />
text-align:right;<br />
width:140px;<br />
float:left;<br />
}<br />
#input_box .small{<br />
color:#399c26;<br />
display:block;<br />
font-size:11px;<br />
font-weight:normal;<br />
text-align:right;<br />
width:140px;<br />
}<br />
#input_box input{<br />
float:left;<br />
font-size:12px;<br />
padding:4px 2px;<br />
border:solid 1px #399c26;<br />
width:200px;<br />
margin:2px 0 20px 10px;<br />
}<br />
#input_box textarea{<br />
float:left;<br />
font-size:12px;<br />
padding:4px 2px;<br />
border:solid 1px #399c26;<br />
width:200px;<br />
height:150px;<br />
margin:2px 0 20px 10px;<br />
}<br />
#input_box button{<br />
clear:both;<br />
margin-left:150px;<br />
width:125px;<br />
height:31px;<br />
background:#399c26;<br />
text-align:center;<br />
line-height:31px;<br />
color:#ffffff;<br />
font-size:11px;<br />
font-weight:bold;<br />
}<br />
&#8211;&gt;<br />
&lt;/style&gt;</p></blockquote>
<p>&lt;script type=&#8221;text/网页特效&#8221; src=&#8221;ajax.网页特效&#8221;&gt;&lt;/script&gt;</p>
<blockquote><p>&lt;/head&gt;</p>
<p>&lt;body&gt;<br />
&lt;div&gt;<br />
&lt;div&gt;<br />
&lt;h1&gt;欢迎使用anfms&lt;/h1&gt;<br />
&lt;p&gt;&lt;span&gt;v0.1.0 alpha&lt;/span&gt;&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;div&gt;&lt;a href=&#8221;网页特效:void(0);&#8221; onclick=&#8221;javascript:file_list(&#8216;/&#8217;); document.getelementbyid(&#8216;file_list&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;file_list_close&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;fade&#8217;).style.display=&#8217;block'&#8221;&gt;文件列表&lt;/a&amp; gt;&lt;/div&gt;<br />
&lt;div&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;javascript:file_list(&#8216;/&#8217;); document.getelementbyid(&#8216;file_make&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;file_list_close&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;fade&#8217;).style.display=&#8217;block'&#8221;&gt;创建文件&lt;/a&amp; gt;&lt;/div&gt;<br />
&lt;div&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;document.getelementbyid(&#8216;file_content_input&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;file_list_close&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;fade&#8217;).style.display=&#8217;block'&#8221;&gt;写入内容&lt;/a&amp; gt;&lt;/div&gt;<br />
&lt;div&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;document.getelementbyid(&#8216;file_get_content&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;file_list_close&#8217;).style.display=&#8217;block&#8217;; document.getelementbyid(&#8216;fade&#8217;).style.display=&#8217;block'&#8221;&gt;读取内容&lt;/a&amp; gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;p&gt;<br />
&amp;copy;2009-2010 uniter.com.cn powered by uniter team&lt;br /&gt;<br />
supported by ie7+ firefox opera<br />
&lt;/p&gt;<br />
&lt;/div&gt;</p>
<p>&lt;div id=&#8221;file_list_close&#8221;&gt;<br />
&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;document.getelementbyid(&#8216;file_list&#8217;).style.display=&#8217;none&#8217;;document.getelementbyid(&#8216;file_content_input&#8217;).style.display=&#8217;none&#8217;;document.getelementbyid(&#8216;file_get_content&#8217;).style.display=&#8217;none&#8217;;document.getelementbyid(&#8216;file_list_close&#8217;).style.display=&#8217;none&#8217;;document.getelementbyid(&#8216;fade&#8217;).style.display=&#8217;none&#8217;;location.reload()&#8221;&gt;x&lt;/a&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;file_list&#8221;&gt;&lt;/div&gt;<br />
&lt;div id=&#8221;file_content_input&#8221;&gt;<br />
&lt;div id=&#8221;input_box&#8221;&gt;<br />
&lt;form id=&#8221;form&#8221; name=&#8221;form&#8221; method=&#8221;post&#8221; action=&#8221;&#8221;&gt;<br />
&lt;label&gt;文件名<br />
&lt;span&gt;例如:abc.txt&lt;/span&gt;<br />
&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;input_name&#8221; id=&#8221;input_name&#8221; /&gt;<br />
&lt;label&gt;内容值<br />
&lt;span&gt;添加文件内容&lt;/span&gt;<br />
&lt;/label&gt;<br />
&lt;textarea name=&#8221;input_content&#8221; id=&#8221;input_content&#8221;&gt;&lt;/textarea&gt;<br />
&lt;button type=&#8221;button&#8221; onclick=&#8221;javascript:file_content_input(&#8216;input_name=&#8217;+document.getelementbyid(&#8216;input_name&#8217;).value+&#8217;&amp; amp;input_content=&#8217;+document.getelementbyid(&#8216;input_content&#8217;).value);&#8221;&amp; gt;确定&lt;/button&gt;<br />
&lt;div&gt;&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;file_get_content&#8221;&gt;<br />
&lt;div id=&#8221;input_box&#8221;&gt;<br />
&lt;form id=&#8221;get_form&#8221; name=&#8221;get_form&#8221; method=&#8221;post&#8221; action=&#8221;&#8221;&gt;<br />
&lt;label&gt;文件名<br />
&lt;span&gt;例如:abc.txt&lt;/span&gt;<br />
&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;input_name&#8221; id=&#8221;input_name&#8221; /&gt;<br />
&lt;button type=&#8221;button&#8221; onclick=&#8221;javascript:file_get_content(&#8216;input_name=&#8217;+document.get_form.input_name.value);&#8221;&amp; gt;确定&lt;/button&gt;<br />
&lt;div&gt;&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;file_make&#8221;&gt;<br />
&lt;div id=&#8221;input_box&#8221;&gt;<br />
&lt;form id=&#8221;make_form&#8221; name=&#8221;make_form&#8221; method=&#8221;post&#8221; action=&#8221;&#8221;&gt;<br />
&lt;label&gt;文件夹<br />
&lt;span&gt;例如:abc&lt;/span&gt;<br />
&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;input_name&#8221; id=&#8221;input_name&#8221; /&gt;<br />
&lt;button type=&#8221;button&#8221; onclick=&#8221;javascript:file_make(&#8216;input_name=&#8217;+document.make_form.input_name.value);&#8221;&amp; gt;确定&lt;/button&gt;<br />
&lt;div&gt;&lt;/div&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;div id=&#8221;fade&#8221;&gt;&lt;/div&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</p></blockquote>
<p>ajax.网页特效</p>
<blockquote><p>&lt;script&gt;<br />
// javascript document<br />
function do_ajax() {<br />
}<br />
function ajax_get_data(id) {<br />
}<br />
function file_list(path) {<br />
var xhr;<br />
if (window.xmlhttprequest) {<br />
xhr = new xmlhttprequest();<br />
}else if (window.activexobject) {<br />
xhr = new activexobject(&#8220;msxml2.xmlhttp&#8221;);<br />
}else {<br />
throw new error(&#8220;ajax is not supported by this www.111cn.net browser&#8221;);<br />
}<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readystate == 4) {<br />
if (xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) {<br />
document.getelementbyid(&#8216;file_list&#8217;).innerhtml = xhr.responsetext;<br />
}<br />
}<br />
}<br />
xhr.open(&#8216;get&#8217;,&#8217;anfms.php?action=filelist&amp;path=&#8217;+path);<br />
xhr.setrequestheader(&#8220;if-modified-since&#8221;,&#8221;0&#8243;);<br />
xhr.send();<br />
}<br />
function file_content_input(data) {<br />
var data;<br />
var xhr;<br />
if (window.xmlhttprequest) {<br />
xhr = new xmlhttprequest();<br />
}else if (window.activexobject) {<br />
xhr = new activexobject(&#8220;msxml2.xmlhttp&#8221;);<br />
}else {<br />
throw new error(&#8220;ajax is not supported by this browser&#8221;);<br />
}<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readystate == 4) {<br />
if (xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) {<br />
document.getelementbyid(&#8216;file_content_input&#8217;).innerhtml = xhr.responsetext;<br />
}<br />
}<br />
}<br />
xhr.open(&#8216;get&#8217;,&#8217;anfms.php?action=inputcontent&amp;&#8217;+data);<br />
xhr.setrequestheader(&#8220;if-modified-since&#8221;,&#8221;0&#8243;);<br />
xhr.send();<br />
}<br />
function file_get_content(data) {<br />
var data;<br />
var xhr;<br />
if (window.xmlhttprequest) {<br />
xhr = new xmlhttprequest();<br />
}else if (window.activexobject) {<br />
xhr = new activexobject(&#8220;msxml2.xmlhttp&#8221;);<br />
}else {<br />
throw new error(&#8220;ajax is not supported by this browser&#8221;);<br />
}<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readystate == 4) {<br />
if (xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) {<br />
document.getelementbyid(&#8216;file_get_content&#8217;).innerhtml = xhr.responsetext;<br />
}<br />
}<br />
}<br />
xhr.open(&#8216;get&#8217;,&#8217;anfms.php?action=getcontent&amp;&#8217;+data);<br />
xhr.setrequestheader(&#8220;if-modified-since&#8221;,&#8221;0&#8243;);<br />
xhr.send();<br />
}<br />
function file_make(file) {<br />
var file;<br />
var xhr;<br />
if (window.xmlhttprequest) {<br />
xhr = new xmlhttprequest();<br />
}else if (window.activexobject) {<br />
xhr = new activexobject(&#8220;msxml2.xmlhttp&#8221;);<br />
}else {<br />
throw new error(&#8220;ajax is not supported by this browser&#8221;);<br />
}<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readystate == 4) {<br />
if (xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) {<br />
document.getelementbyid(&#8216;file_make&#8217;).innerhtml = xhr.responsetext;<br />
}<br />
}<br />
}<br />
xhr.open(&#8216;get&#8217;,&#8217;anfms.php?action=filemake&amp;&#8217;+file);<br />
xhr.setrequestheader(&#8220;if-modified-since&#8221;,&#8221;0&#8243;);<br />
xhr.send();<br />
}<br />
function file_delete(file) {<br />
var file;<br />
var xhr;<br />
if (window.xmlhttprequest) {<br />
xhr = new xmlhttprequest();<br />
}else if (window.activexobject) {<br />
xhr = new activexobject(&#8220;msxml2.xmlhttp&#8221;);<br />
}else {<br />
throw new error(&#8220;ajax is not supported by this browser&#8221;);<br />
}<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readystate == 4) {<br />
if (xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) {<br />
document.getelementbyid(&#8216;file_list&#8217;).innerhtml = xhr.responsetext;<br />
}<br />
}<br />
}<br />
xhr.open(&#8216;get&#8217;,&#8217;anfms.php?action=delete_file&amp;file=&#8217;+file);<br />
xhr.setrequestheader(&#8220;if-modified-since&#8221;,&#8221;0&#8243;);<br />
xhr.send();<br />
}<br />
function dir_delete(file) {<br />
var file;<br />
var xhr;<br />
if (window.xmlhttprequest) {<br />
xhr = new xmlhttprequest();<br />
}else if (window.activexobject) {<br />
xhr = new activexobject(&#8220;msxml2.xmlhttp&#8221;);<br />
}else {<br />
throw new error(&#8220;ajax is not supported by this browser&#8221;);<br />
}<br />
xhr.onreadystatechange = function () {<br />
if (xhr.readystate == 4) {<br />
if (xhr.status &gt;= 200 &amp;&amp; xhr.status &lt; 300) {<br />
document.getelementbyid(&#8216;file_list&#8217;).innerhtml = xhr.responsetext;<br />
}<br />
}<br />
}<br />
xhr.open(&#8216;get&#8217;,&#8217;anfms.php?action=delete_dir&amp;file=&#8217;+file);<br />
xhr.setrequestheader(&#8220;if-modified-since&#8221;,&#8221;0&#8243;);<br />
xhr.send();<br />
}<br />
&lt;/script&gt;</p></blockquote>
<p>anfms.php</p>
<blockquote><p>&lt;?php<br />
/**<br />
* all needs file e 111cn.net manage system<br />
* this is a test code<br />
* return data to ajax<br />
* by aiens<br />
* 2010-01-13 19:20<br />
*/</p>
<p>header(&#8220;content-type: text/html; charset=utf-8&#8243;);<br />
$document_root = $_server[&#8216;document_root&#8217;];<br />
if ($_get[&#8216;action&#8217;] == &#8216;filelist&#8217;) { //return file list<br />
echo &#8216;&lt;div&gt;&#8217;;<br />
$checkpath = str_replace($document_root,&#8221;,$_get[&#8216;path&#8217;]);<br />
if ($checkpath != &#8216;/../&#8217;) {<br />
$checkpath = str_replace(&#8216;../&#8217;,&#8221;,$checkpath);<br />
$path1 = $document_root.str_replace($document_root,&#8221;,$_get[&#8216;path&#8217;]);<br />
$dir = opendir($path1);<br />
while ($file = readdir($dir)) {<br />
if (!($file == &#8216;..&#8217;)) {<br />
if ($file == &#8216;.&#8217;) {<br />
$path = $path1.&#8217;../&#8217;;<br />
$file = &#8216;返回&#8217;;<br />
if ($checkpath != &#8216;/&#8217;) {<br />
echo &#8216;&lt;li&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;javascript:file_list(&#8221;.$path.&#8221;);&#8221;&gt;&#8217;.$file.'&lt;/a&gt;&lt;/li&gt;&#8217;;<br />
}<br />
}else{<br />
$path = $path1.$file.&#8217;/&#8217;;<br />
$path = iconv(&#8216;gb2312&#8242;,&#8217;utf-8&#8217;,$path);<br />
if (is_dir($path1.$file)) {<br />
echo &#8216;&lt;li&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;javascript:file_list(&#8221;.$path.&#8221;);&#8221;&gt;&#8217;.$file.'&lt;/a&gt;&lt;span&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;javascript:if(confirm(&#8216;确认删除?&#8217;)) dir_delete(&#8221;.$path.&#8221;);&#8221;&gt;删除&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&#8217;;<br />
}else{<br />
$file = iconv(&#8216;gb2312&#8242;,&#8217;utf-8&#8217;,$file);<br />
$filesize = filesize($path1.$file)/1000;<br />
echo &#8216;&lt;li&gt;&#8217;.$file.&#8217; &#8211; (&#8216;.$filesize.&#8217;kb)&lt;span&gt;&lt;a href=&#8221;javascript:void(0);&#8221; onclick=&#8221;javascript:if(confirm(&#8216;确认删除?&#8217;)) file_delete(&#8221;.$path1.$file.&#8221;);&#8221;&gt;删除&lt;/a&gt;&lt;/span&gt;&lt; /li&gt;&#8217;;<br />
}<br />
}<br />
}<br />
}<br />
closedir($dir);<br />
}<br />
echo &#8216;&lt;/div&gt;&#8217;;<br />
}else if ($_get[&#8216;action&#8217;] == &#8216;inputcontent&#8217;) { //input data to file<br />
$name = $_get[&#8216;input_name&#8217;];<br />
$content = $_get[&#8216;input_content&#8217;];<br />
$data = date(&#8216;y-m-d h:i:s&#8217;);<br />
$fp = @fopen(dirname(__file__).&#8217;/&#8217;.$name, &#8216;ab&#8217;);<br />
$data = &#8220;data:&#8221;.$data.&#8221;t content:&#8221;.$content.&#8221;n&#8221;;<br />
$fw = @fwrite($fp, $data, strlen($data));<br />
@fclose($fp);<br />
if ($fw) {<br />
echo &#8216;成功写入&#8217;;<br />
}else{<br />
echo &#8216;写入失败&#8217;;<br />
}<br />
}else if ($_get[&#8216;action&#8217;] == &#8216;getcontent&#8217;) { //get data to file<br />
$name = $_get[&#8216;input_name&#8217;];<br />
$fp = @fopen(dirname(__file__).&#8217;/&#8217;.$name, &#8216;rb&#8217;);<br />
if (!$fp) {<br />
echo &#8216;www.111cn.net 系统所在目录不存在此文件,无法读取&#8217;;<br />
exit;<br />
}<br />
while (!feof($fp)) {<br />
$content = fgets($fp);<br />
echo $content.'&lt;br /&gt;&#8217;;<br />
}<br />
}else if ($_get[&#8216;action&#8217;] == &#8216;filemake&#8217;) { //make dir<br />
$name = $_get[&#8216;input_name&#8217;];<br />
function makedir($path) {<br />
if (!file_exists($path)) {<br />
makedir(dirname($path));<br />
return mkdir($path, 0777);<br />
}<br />
}<br />
if (makedir($name)) {<br />
echo &#8216;成功创建&#8217;;<br />
}else{<br />
echo &#8216;创建失败&#8217;;<br />
}<br />
}else if ($_get[&#8216;action&#8217;] == &#8216;delete_file&#8217;) { //delete file<br />
$file = $_get[&#8216;file&#8217;];<br />
unlink($file);<br />
echo &#8216;成功删除&#8217;;<br />
}else if ($_get[&#8216;action&#8217;] == &#8216;delete_dir&#8217;) { //delete dir<br />
$dir = $_get[&#8216;file&#8217;];<br />
function delete_dir($dir) {<br />
if(! is_dir($dir)) {<br />
return false;<br />
}<br />
$handle = @opendir($dir);<br />
while(($file = @readdir($handle)) !== false) {<br />
if($file != &#8216;.&#8217; &amp;&amp; $file != &#8216;..&#8217;) {<br />
$dir = $dir . &#8216;/&#8217; . $file;<br />
is_dir($dir) ? delete_dir($dir) : @unlink($dir);<br />
}<br />
}<br />
closedir($handle);<br />
return rmdir($dir) ;<br />
}<br />
if (delete_dir($dir)) {<br />
echo &#8216;成功删除&#8217;;<br />
}else{<br />
echo &#8216;删除失败&#8217;;<br />
}<br />
}<br />
?&gt;</p></blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>用php生成excel和word文档</title>
		<link>https://www.3code.cn/php-excel-word/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 09 Dec 2009 10:14:46 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP文件]]></category>
		<category><![CDATA[PHP生成HTML]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1238</guid>

					<description><![CDATA[header("Content-Disposition:filename=test.xls");
echo "test1\t";
echo "test2\t\n";
echo "test1\t";]]></description>
										<content:encoded><![CDATA[<p><strong>用php生成excel和word文档</strong><br />
&lt;?<br />
header(&#8220;Content-type:application/vnd.ms-excel&#8221;);<br />
header(&#8220;Content-Disposition:filename=test.xls&#8221;);<br />
echo &#8220;test1\t&#8221;;<br />
echo &#8220;test2\t\n&#8221;;<br />
echo &#8220;test1\t&#8221;;<br />
echo &#8220;test2\t\n&#8221;;<br />
echo &#8220;test1\t&#8221;;<br />
echo &#8220;test2\t\n&#8221;;<br />
echo &#8220;test1\t&#8221;;<br />
echo &#8220;test2\t\n&#8221;;<br />
echo &#8220;test1\t&#8221;;<br />
echo &#8220;test2\t\n&#8221;;<br />
echo &#8220;test1\t&#8221;;<br />
echo &#8220;test2\t\n&#8221;;<br />
?&gt;<br />
只需改动相应文件头就可以输出.doc .xls等文件格式</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP文件格式类</title>
		<link>https://www.3code.cn/php-file-type/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 09 Dec 2009 10:12:39 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP文件]]></category>
		<category><![CDATA[php类]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1236</guid>

					<description><![CDATA[$mime_types = array(
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',]]></description>
										<content:encoded><![CDATA[<p><strong>php文件格式类<br />
</strong><br />
$mime_types = array(<br />
&#8216;gif&#8217; =&gt; &#8216;image/gif&#8217;,<br />
&#8216;jpg&#8217; =&gt; &#8216;image/jpeg&#8217;,<br />
&#8216;jpeg&#8217; =&gt; &#8216;image/jpeg&#8217;,<br />
&#8216;jpe&#8217; =&gt; &#8216;image/jpeg&#8217;,<br />
&#8216;bmp&#8217; =&gt; &#8216;image/bmp&#8217;,<br />
&#8216;png&#8217; =&gt; &#8216;image/png&#8217;,<br />
&#8216;tif&#8217; =&gt; &#8216;image/tiff&#8217;,<br />
&#8216;tiff&#8217; =&gt; &#8216;image/tiff&#8217;,<br />
&#8216;pict&#8217; =&gt; &#8216;image/x-pict&#8217;,<br />
&#8216;pic&#8217; =&gt; &#8216;image/x-pict&#8217;,<br />
&#8216;pct&#8217; =&gt; &#8216;image/x-pict&#8217;,<br />
&#8216;tif&#8217; =&gt; &#8216;image/tiff&#8217;,<br />
&#8216;tiff&#8217; =&gt; &#8216;image/tiff&#8217;,<br />
&#8216;psd&#8217; =&gt; &#8216;image/x-photoshop&#8217;,</p>
<p>&#8216;swf&#8217; =&gt; &#8216;application/x-shockwave-flash&#8217;,<br />
&#8216;js&#8217; =&gt; &#8216;application/x-javascript&#8217;,<br />
&#8216;pdf&#8217; =&gt; &#8216;application/pdf&#8217;,<br />
&#8216;ps&#8217; =&gt; &#8216;application/postscript&#8217;,<br />
&#8216;eps&#8217; =&gt; &#8216;application/postscript&#8217;,<br />
&#8216;ai&#8217; =&gt; &#8216;application/postscript&#8217;,<br />
&#8216;wmf&#8217; =&gt; &#8216;application/x-msmetafile&#8217;,</p>
<p>&#8216;css&#8217; =&gt; &#8216;text/css&#8217;,<br />
&#8216;htm&#8217; =&gt; &#8216;text/html&#8217;,<br />
&#8216;html&#8217; =&gt; &#8216;text/html&#8217;,<br />
&#8216;txt&#8217; =&gt; &#8216;text/plain&#8217;,<br />
&#8216;xml&#8217; =&gt; &#8216;text/xml&#8217;,<br />
&#8216;wml&#8217; =&gt; &#8216;text/wml&#8217;,<br />
&#8216;wbmp&#8217; =&gt; &#8216;image/vnd.wap.wbmp&#8217;,</p>
<p>&#8216;mid&#8217; =&gt; &#8216;audio/midi&#8217;,<br />
&#8216;wav&#8217; =&gt; &#8216;audio/wav&#8217;,<br />
&#8216;mp3&#8217; =&gt; &#8216;audio/mpeg&#8217;,<br />
&#8216;mp2&#8217; =&gt; &#8216;audio/mpeg&#8217;,</p>
<p>&#8216;avi&#8217; =&gt; &#8216;video/x-msvideo&#8217;,<br />
&#8216;mpeg&#8217; =&gt; &#8216;video/mpeg&#8217;,<br />
&#8216;mpg&#8217; =&gt; &#8216;video/mpeg&#8217;,<br />
&#8216;qt&#8217; =&gt; &#8216;video/quicktime&#8217;,<br />
&#8216;mov&#8217; =&gt; &#8216;video/quicktime&#8217;,</p>
<p>&#8216;lha&#8217; =&gt; &#8216;application/x-lha&#8217;,<br />
&#8216;lzh&#8217; =&gt; &#8216;application/x-lha&#8217;,<br />
&#8216;z&#8217; =&gt; &#8216;application/x-compress&#8217;,<br />
&#8216;gtar&#8217; =&gt; &#8216;application/x-gtar&#8217;,<br />
&#8216;gz&#8217; =&gt; &#8216;application/x-gzip&#8217;,<br />
&#8216;gzip&#8217; =&gt; &#8216;application/x-gzip&#8217;,<br />
&#8216;tgz&#8217; =&gt; &#8216;application/x-gzip&#8217;,<br />
&#8216;tar&#8217; =&gt; &#8216;application/x-tar&#8217;,<br />
&#8216;bz2&#8217; =&gt; &#8216;application/bzip2&#8217;,<br />
&#8216;zip&#8217; =&gt; &#8216;application/zip&#8217;,<br />
&#8216;arj&#8217; =&gt; &#8216;application/x-arj&#8217;,<br />
&#8216;rar&#8217; =&gt; &#8216;application/x-rar-compressed&#8217;,</p>
<p>&#8216;hqx&#8217; =&gt; &#8216;application/mac-binhex40&#8217;,<br />
&#8216;sit&#8217; =&gt; &#8216;application/x-stuffit&#8217;,<br />
&#8216;bin&#8217; =&gt; &#8216;application/x-macbinary&#8217;,</p>
<p>&#8216;uu&#8217; =&gt; &#8216;text/x-uuencode&#8217;,<br />
&#8216;uue&#8217; =&gt; &#8216;text/x-uuencode&#8217;,</p>
<p>&#8216;latex&#8217;=&gt; &#8216;application/x-latex&#8217;,<br />
&#8216;ltx&#8217; =&gt; &#8216;application/x-latex&#8217;,<br />
&#8216;tcl&#8217; =&gt; &#8216;application/x-tcl&#8217;,</p>
<p>&#8216;pgp&#8217; =&gt; &#8216;application/pgp&#8217;,<br />
&#8216;asc&#8217; =&gt; &#8216;application/pgp&#8217;,<br />
&#8216;exe&#8217; =&gt; &#8216;application/x-msdownload&#8217;,<br />
&#8216;doc&#8217; =&gt; &#8216;application/msword&#8217;,<br />
&#8216;rtf&#8217; =&gt; &#8216;application/rtf&#8217;,<br />
&#8216;xls&#8217; =&gt; &#8216;application/vnd.ms-excel&#8217;,<br />
&#8216;ppt&#8217; =&gt; &#8216;application/vnd.ms-powerpoint&#8217;,<br />
&#8216;mdb&#8217; =&gt; &#8216;application/x-msaccess&#8217;,<br />
&#8216;wri&#8217; =&gt; &#8216;application/x-mswrite&#8217;,<br />
);</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP filemtime &#8212; 取得文件修改时间</title>
		<link>https://www.3code.cn/php-filemtime/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 09 Dec 2009 01:34:04 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1228</guid>

					<description><![CDATA[
返回文件上次被修改的时间，出错时返回 FALSE。时间以 Unix 时间戳的方式返回，可用于 date()。

注: 本函数的结果会被缓存。详细信息参见 clearstatcache()。]]></description>
										<content:encoded><![CDATA[<p><strong>Php filemtime &#8212; 取得文件修改时间</strong></p>
<p><strong>说明</strong><br />
int filemtime ( string filename )</p>
<p>返回文件上次被修改的时间，出错时返回 FALSE。时间以 Unix 时间戳的方式返回，可用于 date()。</p>
<p>注: 本函数的结果会被缓存。详细信息参见 clearstatcache()。</p>
<p>注: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。</p>
<p>本函数返回文件中的数据块上次被写入的时间，也就是说，文件的内容上次被修改的时间。</p>
<p><strong>例子 1. filemtime() 例子</strong></p>
<p>&lt;?php<br />
// outputs e.g.  somefile.txt was last modified: December 29 2002 22:16:23.<br />
$filename = &#8216;somefile.txt&#8217;;<br />
if (file_exists($filename)) {<br />
echo &#8220;$filename was last modified: &#8221; . date (&#8220;F d Y H:i:s.&#8221;, filemtime($filename));</p>
<p>}<br />
?&gt;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP filesize &#8212; 取得文件大小</title>
		<link>https://www.3code.cn/php-filesize/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Wed, 09 Dec 2009 01:31:52 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=1226</guid>

					<description><![CDATA[返回文件大小的字节数，如果出错返回 FALSE。

注: 因为 PHP 的整数类型是有符号的，并且大多数平台使用 32 位整数，filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果。对于 2GB 到 4GB 之间的文件通常可以使用 sprintf("%u", filesize($file)) 来克服此问题。 ]]></description>
										<content:encoded><![CDATA[<p><strong>PHP filesize &#8212; 取得文件大小</strong>(PHP 3, PHP 4, PHP 5)<br />
<strong>说明</strong><br />
int filesize ( string filename )</p>
<p>返回文件大小的字节数，如果出错返回 FALSE。</p>
<p>注: 因为 PHP 的整数类型是有符号的，并且大多数平台使用 32 位整数，filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果。对于 2GB 到 4GB 之间的文件通常可以使用 sprintf(&#8220;%u&#8221;, filesize($file)) 来克服此问题。</p>
<p>注: 本函数的结果会被缓存。详细信息参见 clearstatcache()。</p>
<p>注: 本函数不能作用于远程文件，被检查的文件必须通过服务器的文件系统访问。</p>
<p><strong>例子 1. filesize() 例子</strong></p>
<p>&lt;?php</p>
<p>// 输出类似：somefile.txt: 1024 bytes</p>
<p>$filename = &#8216;somefile.txt&#8217;;<br />
echo $filename . &#8216;: &#8216; . filesize($filename) . &#8216; bytes&#8217;;</p>
<p>?&gt;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>经典PHP文件操作函数及实例介绍</title>
		<link>https://www.3code.cn/php-files-example/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Thu, 26 Nov 2009 02:24:56 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP删除文件]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=774</guid>

					<description><![CDATA[经典PHP文件操作函数及实例介绍 bool file_exists(string filename)
判断文件或目录是否存在，存在则返回真，否则返回假]]></description>
										<content:encoded><![CDATA[<p><strong>经典</strong><strong>PHP文件操作函数及实例介绍</strong></p>
<p><strong>//判断文件或目录是否存在</strong></p>
<p>bool file_exists(string filename)<br />
判断文件或目录是否存在，存在则返回真，否则返回假<br />
格式：<br />
if(file_exists(“hello.txt”))<br />
{<br />
Echo “文件存在”；<br />
}</p>
<p><strong>//打开文件</strong></p>
<p>格式：<br />
fopen(filename,mode)<br />
说明：按指定的格式打开指定的文件<br />
filename:要打开的文件名<br />
mode : 打开模式<br />
fopen(“hello.txt”,”w”);<br />
表示以写的方式打开hello.txt文件</p>
<p><strong>//写文件</strong></p>
<p>格式：<br />
fwrite(resource,string);<br />
说明：在打开的文件中添加指定的内容<br />
resource:打开的文件<br />
string：要写入的内容<br />
例：<br />
$handle = fopen(“hello.txt”,”w”) //若a ,则可追加数据<br />
fwrite($handle,”1\r\n”)</p>
<p><strong>//关闭文件</strong></p>
<p>格式：<br />
fclose($handle)<br />
说明：关闭打开的文件<br />
例：<br />
$handle = fopen(“hello.txt”,”w”);<br />
fclose($handle);</p>
<p><strong>//读取一行数据</strong></p>
<p>格式：<br />
fgets(int handle[,int length])<br />
说明：读取length-1个字符。若没有指定length,则默认字节为1KB,<br />
若遇到换行、EOF或则已经读取了length-1个字符，则程序终止，<br />
出错时候返回false;<br />
例：<br />
$handle = fopen(“hello.txt”,”r”);<br />
$buffer = fgets($handle,1024);<br />
echo $handle; //输出一行信息</p>
<p><strong>//读取整个文件</strong></p>
<p>格式：<br />
readfile(filename)<br />
说明：读取整个文件，并输出到浏览器<br />
例：<br />
&lt;?<br />
readfile(“hello.txt”);<br />
?&gt;</p>
<p><strong>//取文件大小</strong></p>
<p>格式：<br />
filesize(filename)<br />
说明：获取指定文件大小，出错返回false<br />
例：<br />
filesize(“a.rar”)</p>
<p><strong>//删除文件</strong></p>
<p>格式：<br />
unlink()<br />
说明：删除一个文件，成功则返回true,否则返回false<br />
例：<br />
unlink(“b.txt”)</p>
<p><strong>//创建目录</strong></p>
<p>格式：<br />
mkdir(dirname)<br />
说明：创建一个目录<br />
例：mkdir(“newfolder”); //当前目录下创建新文件夹</p>
<p><strong>//删除目录</strong></p>
<p>格式：<br />
rmdir(dirname)<br />
说明：删除一个目录<br />
例：rmdir(“newfolder”);</p>
<p><strong>//取得文件名</strong></p>
<p>格式：<br />
basename(filepath)<br />
说明：从指定的路径中返回文件名<br />
例：<br />
basename(“c:\mytools\a.txt”) //返回a.txt</p>
<p><strong>//获取文件路径信息</strong></p>
<p>pathinfo(path)<br />
说明：返回文件路径信息，结果保存在数组中，数组下标为<br />
dirname(路径) , basename（文件名） , extension（扩展名）<br />
例：pathinfo(“c:\mytools\a.txt”)</p>
<p><strong>//取绝对路径</strong></p>
<p>格式：<br />
realpath(filename)<br />
说明：取指定文件的绝对路径，失败则返回false<br />
例：realpath(“h.txt”)  //F:\apache\example\h.txt</p>
<p><strong>//复制文件</strong></p>
<p>格式：<br />
copy(source,dest)<br />
说明：将source文件复制到dest处<br />
例：copy(“h.txt”,”newfloder\a.txt”)</p>
<p><strong>//判断是否是目录</strong></p>
<p>格式：<br />
is_dir(filename)<br />
说明：判断给定文件名是否是一个目录。如果filename存在并且<br />
为目录，则返回true,否则返回false.<br />
例：<br />
if(is_dir(“newfolder”))<br />
{<br />
echo “是文件目录”；<br />
}</p>
<p><strong>//打开目录<br />
</strong><br />
格式：opendir(path)<br />
说明：打开一个指定文件目录，返回一个资源标示符<br />
例：<br />
$hand = opendir(“.”) //打开根目录</p>
<p><strong>//读取目录</strong></p>
<p>格式：<br />
readdir($handle)<br />
说明：读取一个打开的文件目录流<br />
readdir($hand);</p>
<p><strong>//关闭目录</strong></p>
<p>格式：<br />
closedir($handle)<br />
说明：关闭一个打开的目录流<br />
例：closedir($hand);</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>php文件操作相关函数或方法</title>
		<link>https://www.3code.cn/php-file-readwrite/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Thu, 26 Nov 2009 02:20:09 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP删除文件]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=771</guid>

					<description><![CDATA[is_readable()//判断文件是否可读
is_writeable()//判断文件是否可写
is_writable()//判断文件是否可写
fileperms()//判断文件的权限（UNIX风格的文件权限测试函数）
file_exists()//是否存在这个文件]]></description>
										<content:encoded><![CDATA[<p><strong>php文件操作相关函数或方法</strong></p>
<p>&lt;?php<br />
$filename = &#8220;E:/website/php/xinyuee.htm&#8221;;<br />
$fp = fopen(&#8220;$filename&#8221;, &#8220;w+&#8221;); //打开文件<br />
$fw = fwrite($fp, &#8220;Test Success&#8221;);    //往文件内写入内容，注意后面的参数<br />
fclose($fp);</p>
<p>//使用完毕文件后，要显式的告诉PHP已经使用完文件，让操作系统确保将文件的所有内容正确地从缓冲区刷新到硬盘</p>
<p>$fp = fopen(&#8220;$filename&#8221;, &#8220;r&#8221;);<br />
echo fgets($fp); //读取文件内容<br />
echo filesize($filename); //获取文件大小<br />
?&gt;</p>
<p>is_readable()//判断文件是否可读<br />
is_writeable()//判断文件是否可写<br />
is_writable()//判断文件是否可写<br />
fileperms()//判断文件的权限（UNIX风格的文件权限测试函数）<br />
file_exists()//是否存在这个文件<br />
fileowner()//判断文件所属用户<br />
filegroup()//判断文件所属组<br />
unlink()//删除文件<br />
rename()//重命名文件<br />
basename()//返回不包括路径信息的文件名<br />
dirname()//返回文件名的目录部分<br />
realpath()//接受相对路径，返回文件的绝对路径<br />
pathinfo()//提取给定路径的目录名，基本文件名和扩展名<br />
opendir()//打开目录，返回资源句柄<br />
readdir()//读取目录项<br />
rewinddir()//将读取指针返回开头<br />
closedir()//关闭读取句柄<br />
chdir()//改变当前脚本执行期间的当前工作目录<br />
mkdir()//创建目录<br />
rmdir()删除目录<br />
&#8216;r&#8217; 只读方式打开，将文件指针指向文件头。<br />
&#8216;r+&#8217; 读写方式打开，将文件指针指向文件头。<br />
&#8216;w&#8217; 写入方式打开，将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。<br />
&#8216;w+&#8217; 读写方式打开，将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。<br />
&#8216;a&#8217; 写入方式打开，将文件指针指向文件末尾。如果文件不存在则尝试创建之。<br />
&#8216;a+&#8217; 读写方式打开，将文件指针指向文件末尾。如果文件不存在则尝试创建之。<br />
&#8216;x&#8217; 创建并以写入方式打开，将文件指针指向文件头。如果文件已存在，则 fopen() 调用失败并返回 FALSE，并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持，仅能用于本地文件。<br />
&#8216;x+&#8217; 创建并以读写方式打开，将文件指针指向文件头。如果文件已存在，则 fopen() 调用失败并返回 FALSE，并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持，仅能用于本地文件。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP上传总结-文件大小检测及大文件上传</title>
		<link>https://www.3code.cn/php-uploadfiles/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Sat, 21 Nov 2009 11:09:35 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP图片上传]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=614</guid>

					<description><![CDATA[由于涉及到本地和服务器两方面的安全问题，所以基于input type="file"形式的页面文件上传一直处于一个很尴尬的位置。一方面，用户不希望隐私泄露，所以浏览器无法对用户在上传时选择的文件做有效的判断。另一方面，为了服务器端的安全，减轻传输负担，系统又希望能在用户开始上传之前就将非法的文件拒之门外。]]></description>
										<content:encoded><![CDATA[<p><strong>PHP上传总结-文件大小检测及大文件上传</strong></p>
<p>由于涉及到本地和服务器两方面的安全问题，所以基于input type=&#8221;file&#8221;形式的页面文件上传一直处于一个很尴尬的位置。一方面，用户不希望隐私泄露，所以浏览器无法对用户在上传时选择的文件做有效的判断。另一方面，为了服务器端的安全，减轻传输负担，系统又希望能在用户开始上传之前就将非法的文件拒之门外。</p>
<p>一来一去，基于原始input方式的上传，成为网络存储网站避之唯恐不及的遗留性问题，也造就了现在千奇百怪的插件、上传客户端。</p>
<p>input方式的上传就如此之差么？当然不是。上传文件不大的时候，它还是非常简单可靠的，在PHP中，我们只需要一个复合型表单</p>
<p>&lt;form enctype=&#8221;multipart/form-data&#8221; action=&#8221;__URL__&#8221; method=&#8221;POST&#8221;&gt;<br />
一个输入框<br />
&lt;input name=&#8221;userfile&#8221; type=&#8221;file&#8221; /&gt;<br />
和服务器端的一行代码<br />
move_uploaded_file($_FILES[&#8216;userfile&#8217;][&#8216;tmp_name&#8217;], &#8216;/var/www/uploads/&#8217;. basename($_FILES[&#8216;userfile&#8217;][&#8216;name&#8217;]));</p>
<p>就可以实现整个上传过程。</p>
<p>但随文件增大，表单上传的不足就会暴露出来。尤其是我们想取得最基本的文件大小来阻止过大文件上传这一简单的想法，也变得如此困难。以下一一道来：</p>
<p><strong>通过MAX_FILE_SIZE</strong><br />
我们经常会在手册里读到:</p>
<p>MAX_FILE_SIZE 隐藏字段（单位为字节）必须放在文件输入字段之前，其值为接收文件的最大尺寸。这是对浏览器的一个建议，PHP 也会检查此项。在浏览器端可以简单绕过此设置，因此不要指望用此特性来阻挡大文件。实际上，PHP 设置中的上传文件最大值是不会失效的。但是最好还是在表单中加上此项目，因为它可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。</p>
<p>显然PHP的开发者们也考虑到了大文件上传的问题，但就像手册所说，MAX_FILE_SIZE只是对浏览器的一个建议，事实上目前为止所有主流的浏览器并没有采纳这个建议，所以采用MAX_FILE_SIZE约束文件大小形同摆设，不可行。</p>
<p><strong>通过服务器端</strong><br />
MAX_FILE_SIZE既然无效，那么用户可以将文件上传到服务器，服务器端通过$_FILES[&#8216;userfile&#8217;][&#8216;size&#8217;]判断用户上传的文件大小，然后决定是否接受上传并返回信息。暂且排除服务器的负荷以及可能存在的恶意破坏行为，这种解决方案听起来无非是浪费一部分带宽，也能对用户上传文件作出约束。</p>
<p>但这也是不可行的，PHP的文件上传受到php.ini以下这些设置的影响:</p>
<p>post_max_size<br />
upload_max_filesize<br />
max_execution_time<br />
memory_limit<br />
虽然设置方法在手册中都有比较详细的说明，之所以仍然说此方法不可行，是因为php执行脚本在超过memory_limit时，该次的POST数据会全部丢失并且不会报错！</p>
<p>试想用户填写了一个超长的表单，并伴随一个超过memory_limit的文件一起上传，经过了漫长的等待时间之后发现等来的又是一张干干净净的空白表单，那是何等印象深刻的用户体验啊。更何况数十M的服务器流量仅仅用来检测文件大小，是现在的网络环境不允许的。</p>
<p><strong>通过Javascript</strong><br />
Javascript是基于浏览器的，虽然JS能完成很多看似不可能的任务，但浏览器做不到的事情JS同样无法做到。先天不足注定了这项工作仅仅靠Javascript是无法胜任的。不过一些IE Only的方法也还是存在的，仅作参考。</p>
<p><strong>通过Flash</strong><br />
Flash的FileReference类提供了一套比较全面的文件处理方法，现在大多数大文件上传也都采用了基于Flash的方案。如果利用Flash与Js交互，能否实现客户端对文件大小的检测呢？答案是可行的。</p>
<p>首先在flash文件中实例化FileReference类。</p>
<p>1. var fr = new FileReference();</p>
<p>基于这个类就可以用Flash提供的file browse和SelectFile事件替代浏览器的事件。我们需要：</p>
<p>1.绑定SelectFile</p>
<p>1. fr.addEventListener(Event.SELECT, onSelectFile);</p>
<p>2.创建一个供Js访问的对象，用来放置flash得到的文件信息</p>
<p>1. var s = {<br />
2.   size:0,<br />
3.   name:&#8221;,<br />
4.   type:&#8221;<br />
5. }</p>
<p>3.创建file browse方法</p>
<p>1. function browseFile():void {<br />
2.   fr.browse();<br />
3. }</p>
<p>4.当SelectFile事件触发的时候，传递文件信息</p>
<p>1. function onSelectFile(e:Event):void {<br />
2.   s.size = fr.size;<br />
3.   s.name = fr.name;<br />
4.   s.type = fr.type;<br />
5. }</p>
<p>5.将browseFile方法公开可供Js调用</p>
<p>1. ExternalInterface.addCallback(&#8220;browseFile&#8221;, browseFile);</p>
<p>6.将得到的文件信息传递给Js</p>
<p>1. ExternalInterface.call(&#8220;onSelectFile&#8221;,s);</p>
<p>现在我们已经可以通过Js获得由flash传递来的文件大小信息了，具体的实现可以参看Demo。</p>
<p>结论<br />
问题至此似乎已经得到解决了，我们已经成功的校验了文件大小不是么。但本文的最终结论是，基于Flash的文件大小校验，仍然不可行。</p>
<p>文件大小校验的唯一目的，是为了上传。在上面的Demo中可以看到校验成功的文件名会显示在一个输入框里。熟悉上传的同学不觉得少了什么吗？没错，通过flash只能得到文件名，而无法得到文件的完整路径，而文件路径却是input方式上传的必要条件。所以虽然可以成功的通过Flash与Js交互校验文件大小，但我们能做到的也仅仅只是校验而已，之后想要上传，唯有继续通过flash方式进行。</p>
<p>Flash开发出于安全考虑屏蔽了文件的完整路径这无可厚非，不过文件上传，尤其是PHP环境下的文件校验上传方案仍然没有得到最好的解决。</p>
<p><strong>当然弥补的方法有很多：</strong></p>
<p>基于Perl的项目 FileChucker , XUpload , Uber-Uploader<br />
基于Flash的项目 SWFUpload<br />
还有筒子用PHP直接在服务器华丽的建立socket链接。<br />
但终究我希望有一天能看到仅基于HTML就能实现的严整健壮的上传方案，但愿这一天不会太远。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP获取文件的创建、修改和访问时间</title>
		<link>https://www.3code.cn/php-file-time/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Tue, 17 Nov 2009 15:57:54 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP 函数]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=553</guid>

					<description><![CDATA[filectime() 函数返回指定文件的上次 inode 修改时间。
该函数返回文件上次 inode 被修改的时间。如果出错则返回 false。时间以 Unix 时间戳的方式返回。]]></description>
										<content:encoded><![CDATA[<p><strong>PHP获取文件的创建、修改和访问时间</strong></p>
<p><strong>PHP filectime() 函数 </strong></p>
<p><strong>定义和用法 </strong></p>
<p>filectime() 函数返回指定文件的上次 inode 修改时间。<br />
该函数返回文件上次 inode 被修改的时间。如果出错则返回 false。时间以 Unix 时间戳的方式返回。</p>
<p><strong>语法</strong><br />
fileatime(filename) filename 必需。规定要检查的文件。<br />
提示和注释<br />
提示：本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。</p>
<p>注意：在大多数 Unix 文件系统中，当一个文件的 inode 数据被改变时则该文件被认为是修改了。也就是说，当文件的权限，所有者，所有组或其它 inode 中的元数据被更新时。参见 filemtime()（这才是你想用于在 Web 页面中建立“最后更新时间”脚注的函数）和 fileatime()。</p>
<p>注释：某些 Unix 说明文本中把 ctime 说成是该文件建立的时间，这是错的。在大多数 Unix 文件系统中，没有 Unix 文件的建立时间。</p>
<p><strong>PHP filemtime()函数</strong></p>
<p><strong>定义和用法</strong><br />
filemtime() 函数返回文件内容上次的修改时间。若成功，则时间以 Unix 时间戳的方式返回。若失败，则返回 false。</p>
<p><strong>语法</strong><br />
filemtime(filename)    filename 必需。规定要检查的文件。<br />
说明<br />
本函数返回文件中的数据块上次被写入的时间，也就是说，文件的内容上次被修改的时间。<br />
提示和注释<br />
提示：本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。</p>
<p><strong>PHP fileatime()函数</strong><br />
<strong>定义和用法</strong><br />
fileatime() 函数返回指定文件的上次访问时间。</p>
<p>该函数返回文件上次被访问的时间。如果出错则返回 false。时间以 Unix 时间戳的方式返回。<br />
<strong>语法</strong><br />
fileatime(filename)  filename 必需。规定要检查的文件。<br />
提示和注释<br />
提示：本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。</p>
<p>注释：文件的 atime 应该在不论何时读取了该文件中的数据块时被更改。当一个应用程序定期访问大量文件或目录时很影响性能。有些 Unix 文件系统可以在加载时关闭 atime 的更新以提高这类程序的性能。USENET 新闻组假脱机是一个常见的例子。在这种文件系统下，本函数没有用处。</p>
<p><strong>实例</strong></p>
<p><span style="color: #008000;">&lt; ?php<br />
$a=filectime(&#8220;log.txt&#8221;);<br />
echo &#8220;创建时间：&#8221;.date(&#8220;Y-m-d H:i:s&#8221;,$a).&#8221;<br />
&#8220;;<br />
$a=filemtime(&#8220;log.txt&#8221;);<br />
echo &#8220;修改时间：&#8221;.date(&#8220;Y-m-d H:i:s&#8221;,$a).&#8221;<br />
&#8220;;<br />
$a=fileatime(&#8220;log.txt&#8221;);<br />
echo &#8220;访问时间:&#8221;.date(&#8220;Y-m-d&#8221;,$a).&#8221;<br />
&#8220;;<br />
?&gt;</span></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP遍历文件夹文件</title>
		<link>https://www.3code.cn/php-browse-folder/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Mon, 02 Nov 2009 06:14:47 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP文件]]></category>
		<category><![CDATA[PHP遍历]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=104</guid>

					<description><![CDATA[PHP遍历文件夹文件 PHP FOLDER]]></description>
										<content:encoded><![CDATA[<p><strong>PHP遍历文件夹文件</strong></p>
<p><code><span style="color: #000000;"><span style="color: #0000bb;">&lt;?<br />
</span><span style="color: #007700;">function </span><span style="color: #0000bb;">list_files</span><span style="color: #007700;">( </span><span style="color: #0000bb;">$folder </span><span style="color: #007700;">= </span><span style="color: #dd0000;">''</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$levels </span><span style="color: #007700;">= </span><span style="color: #0000bb;">100 </span><span style="color: #007700;">) {<br />
if( empty(</span><span style="color: #0000bb;">$folder</span><span style="color: #007700;">) )<br />
return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">;</p>
<p>if( ! </span><span style="color: #0000bb;">$levels </span><span style="color: #007700;">)<br />
return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">;</p>
<p></span><span style="color: #0000bb;">$files </span><span style="color: #007700;">=  array();<br />
if ( </span><span style="color: #0000bb;">$dir </span><span style="color: #007700;">= @</span><span style="color: #0000bb;">opendir</span><span style="color: #007700;">( </span><span style="color: #0000bb;">$folder </span><span style="color: #007700;">) ) {<br />
while ((</span><span style="color: #0000bb;">$file </span><span style="color: #007700;">= </span><span style="color: #0000bb;">readdir</span><span style="color: #007700;">( </span><span style="color: #0000bb;">$dir </span><span style="color: #007700;">) ) !== </span><span style="color: #0000bb;">false </span><span style="color: #007700;">) {<br />
if ( </span><span style="color: #0000bb;">in_array</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$file</span><span style="color: #007700;">, array(</span><span style="color: #dd0000;">'.'</span><span style="color: #007700;">, </span><span style="color: #dd0000;">'..'</span><span style="color: #007700;">) ) )<br />
continue;<br />
if ( </span><span style="color: #0000bb;">is_dir</span><span style="color: #007700;">( </span><span style="color: #0000bb;">$folder </span><span style="color: #007700;">. </span><span style="color: #dd0000;">'/' </span><span style="color: #007700;">. </span><span style="color: #0000bb;">$file </span><span style="color: #007700;">) ) {<br />
</span><span style="color: #0000bb;">$files2 </span><span style="color: #007700;">= </span><span style="color: #0000bb;">list_files</span><span style="color: #007700;">( </span><span style="color: #0000bb;">$folder </span><span style="color: #007700;">. </span><span style="color: #dd0000;">'/' </span><span style="color: #007700;">. </span><span style="color: #0000bb;">$file</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$levels </span><span style="color: #007700;">- </span><span style="color: #0000bb;">1</span><span style="color: #007700;">);<br />
if( </span><span style="color: #0000bb;">$files2 </span><span style="color: #007700;">)<br />
</span><span style="color: #0000bb;">$files </span><span style="color: #007700;">= </span><span style="color: #0000bb;">array_merge</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$files</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$files2 </span><span style="color: #007700;">);<br />
else<br />
</span><span style="color: #0000bb;">$files</span><span style="color: #007700;">[] = </span><span style="color: #0000bb;">$folder </span><span style="color: #007700;">. </span><span style="color: #dd0000;">'/' </span><span style="color: #007700;">. </span><span style="color: #0000bb;">$file </span><span style="color: #007700;">. </span><span style="color: #dd0000;">'/'</span><span style="color: #007700;">;<br />
} else {<br />
</span><span style="color: #0000bb;">$files</span><span style="color: #007700;">[] = </span><span style="color: #0000bb;">$folder </span><span style="color: #007700;">. </span><span style="color: #dd0000;">'/' </span><span style="color: #007700;">. </span><span style="color: #0000bb;">$file</span><span style="color: #007700;">;<br />
}<br />
}<br />
}<br />
@</span><span style="color: #0000bb;">closedir</span><span style="color: #007700;">( </span><span style="color: #0000bb;">$dir </span><span style="color: #007700;">);<br />
return </span><span style="color: #0000bb;">$files</span><span style="color: #007700;">;<br />
}<br />
</span><span style="color: #0000bb;">?&gt;</span></span></code></p>
<p><strong>函数描述及例子</strong></p>
<p><code><span style="color: #000000;">遍历文件夹文件<br />
<span style="color: #0000bb;">&lt;?<br />
list_files</span><span style="color: #007700;">(</span><span style="color: #dd0000;">'admin'</span><span style="color: #007700;">);<br />
</span><span style="color: #0000bb;">?&gt;</span> </span></code></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>PHP判断远程文件是否存在</title>
		<link>https://www.3code.cn/php-remote_file_exists/</link>
		
		<dc:creator><![CDATA[寒林]]></dc:creator>
		<pubDate>Mon, 02 Nov 2009 06:00:29 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP文件]]></category>
		<guid isPermaLink="false">https://www.3code.cn/?p=98</guid>

					<description><![CDATA[PHP判断远程文件是否存在]]></description>
										<content:encoded><![CDATA[<p><strong>PHP判断远程文件是否存在</strong></p>
<div>
<p><code><span style="color: #000000;"><span style="color: #0000bb;">&lt;?php</span></span></code></p>
<p><span style="color: #ff8000;">/*<br />
函数：remote_file_exists<br />
功能：判断远程文件是否存在<br />
参数： $url_file -远程文件URL<br />
返回：存在返回true，不存在或者其他原因返回false<br />
*/<br />
</span><span style="color: #007700;">function </span><span style="color: #0000bb;">remote_file_exists</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$url_file</span><span style="color: #007700;">){<br />
</span><span style="color: #ff8000;">//检测输入<br />
</span><span style="color: #0000bb;">$url_file </span><span style="color: #007700;">= </span><span style="color: #0000bb;">trim</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$url_file</span><span style="color: #007700;">);<br />
if  (empty(</span><span style="color: #0000bb;">$url_file</span><span style="color: #007700;">)) {  return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">; }<br />
</span><span style="color: #0000bb;">$url_arr </span><span style="color: #007700;">= </span><span style="color: #0000bb;">parse_url</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$url_file</span><span style="color: #007700;">);<br />
if  (!</span><span style="color: #0000bb;">is_array</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">) || empty(</span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">)){return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">; }</span></p>
<p><span style="color: #ff8000;">//获取请求数据<br />
</span><span style="color: #0000bb;">$host </span><span style="color: #007700;">= </span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">[</span><span style="color: #dd0000;">&#8216;host&#8217;</span><span style="color: #007700;">];<br />
</span><span style="color: #0000bb;">$path </span><span style="color: #007700;">= </span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">[</span><span style="color: #dd0000;">&#8216;path&#8217;</span><span style="color: #007700;">] .</span><span style="color: #dd0000;">&#8220;?&#8221;</span><span style="color: #007700;">.</span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">[</span><span style="color: #dd0000;">&#8216;query&#8217;</span><span style="color: #007700;">];<br />
</span><span style="color: #0000bb;">$port </span><span style="color: #007700;">= isset(</span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">[</span><span style="color: #dd0000;">&#8216;port&#8217;</span><span style="color: #007700;">]) ?</span><span style="color: #0000bb;">$url_arr</span><span style="color: #007700;">[</span><span style="color: #dd0000;">&#8216;port&#8217;</span><span style="color: #007700;">] : </span><span style="color: #dd0000;">&#8220;80&#8221;</span><span style="color: #007700;">;</span></p>
<p><span style="color: #ff8000;">//连接服务器<br />
</span><span style="color: #0000bb;">$fp </span><span style="color: #007700;">= </span><span style="color: #0000bb;">fsockopen</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$host</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$port</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$err_no</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$err_str</span><span style="color: #007700;">,</span><span style="color: #0000bb;">30</span><span style="color: #007700;">);<br />
if (!</span><span style="color: #0000bb;">$fp</span><span style="color: #007700;">){ return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">; }</span></p>
<p><span style="color: #ff8000;">//构造请求协议<br />
</span><span style="color: #0000bb;">$request_str </span><span style="color: #007700;">= </span><span style="color: #dd0000;">&#8220;GET &#8220;</span><span style="color: #007700;">.</span><span style="color: #0000bb;">$path</span><span style="color: #007700;">.</span><span style="color: #dd0000;">&#8220;HTTP/1.1\r\n&#8221;</span><span style="color: #007700;">;<br />
</span><span style="color: #0000bb;">$request_str </span><span style="color: #007700;">.= </span><span style="color: #dd0000;">&#8220;Host:&#8221;</span><span style="color: #007700;">.</span><span style="color: #0000bb;">$host</span><span style="color: #007700;">.</span><span style="color: #dd0000;">&#8220;\r\n&#8221;</span><span style="color: #007700;">;<br />
</span><span style="color: #0000bb;">$request_str </span><span style="color: #007700;">.= </span><span style="color: #dd0000;">&#8220;Connection:Close\r\n\r\n&#8221;</span><span style="color: #007700;">;</span></p>
<p><span style="color: #ff8000;">//发送请求<br />
</span><span style="color: #0000bb;">fwrite</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$fp</span><span style="color: #007700;">,</span><span style="color: #0000bb;">$request_str</span><span style="color: #007700;">);<br />
</span><span style="color: #0000bb;">$first_header </span><span style="color: #007700;">= </span><span style="color: #0000bb;">fgets</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$fp</span><span style="color: #007700;">, </span><span style="color: #0000bb;">1024</span><span style="color: #007700;">);<br />
</span><span style="color: #0000bb;">fclose</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$fp</span><span style="color: #007700;">);</span></p>
<p><span style="color: #ff8000;">//判断文件是否存在<br />
</span><span style="color: #007700;">if (</span><span style="color: #0000bb;">trim</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$first_header</span><span style="color: #007700;">) == </span><span style="color: #dd0000;">&#8220;&#8221;</span><span style="color: #007700;">){  return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">;}<br />
if (!</span><span style="color: #0000bb;">preg_match</span><span style="color: #007700;">(</span><span style="color: #dd0000;">&#8220;/200/&#8221;</span><span style="color: #007700;">, </span><span style="color: #0000bb;">$first_header</span><span style="color: #007700;">)){<br />
return </span><span style="color: #0000bb;">false</span><span style="color: #007700;">;<br />
}<br />
return </span><span style="color: #0000bb;">true</span><span style="color: #007700;">;<br />
}</span></p>
<p><span style="color: #0000bb;">?&gt;</span></div>
<div>
<p><strong>函数描述及例子</strong></p>
<p><code><span style="color: #000000;"><span style="color: #0000bb;">&lt;?<br />
</span><span style="color: #ff8000;">//测试代码<br />
</span><span style="color: #0000bb;">$str_url </span><span style="color: #007700;">= </span><span style="color: #dd0000;">'http://www.phpx.com/viewarticle.php?id=119617'</span><span style="color: #007700;">;<br />
</span><span style="color: #0000bb;">$exits </span><span style="color: #007700;">= </span><span style="color: #0000bb;">remote_file_exists</span><span style="color: #007700;">(</span><span style="color: #0000bb;">$str_url</span><span style="color: #007700;">);<br />
echo </span><span style="color: #0000bb;">$exists </span><span style="color: #007700;">? </span><span style="color: #dd0000;">"Exists" </span><span style="color: #007700;">: </span><span style="color: #dd0000;">"Not exists"</span><span style="color: #007700;">;<br />
</span><span style="color: #0000bb;">?&gt;</span> </span></code></p>
<p style="text-align: center; clear: both; padding-top: 20px;">
</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
