{"id":306,"date":"2012-04-10T18:03:34","date_gmt":"2012-04-10T10:03:34","guid":{"rendered":"http:\/\/www.cnmiss.cn\/?p=306"},"modified":"2012-04-10T18:03:34","modified_gmt":"2012-04-10T10:03:34","slug":"php%e8%8e%b7%e5%8f%96%e8%bf%9c%e7%a8%8b%e6%96%87%e4%bb%b6%e5%a4%a7%e5%b0%8f","status":"publish","type":"post","link":"https:\/\/www.cnmiss.cn\/?p=306","title":{"rendered":"php\u83b7\u53d6\u8fdc\u7a0b\u6587\u4ef6\u5927\u5c0f"},"content":{"rendered":"<p>\u83b7\u53d6\u672c\u5730\u6587\u4ef6\u5927\u5c0ffilesize()\u5c31\u53ef\u4ee5\u4e86,\u4f46\u662f\u5982\u4f55\u83b7\u53d6\u8fdc\u7a0b\u6587\u4ef6\u7684\u5927\u5c0f\u5462? \u8fd9\u91cc\u4ecb\u7ecd\u56db\u4e2a\u65b9\u6cd5\u6765\u83b7\u53d6\u8fdc\u7a0b\u6587\u4ef6\u7684\u5927\u5c0f.<\/p>\n<p><strong>\u65b9\u6cd51:get_headers<\/strong><\/p>\n<blockquote><p>&lt;?php\u00a0<br \/>\nget_headers($url,true);\u00a0<br \/>\n\u00a0<br \/>\n\/\/\u8fd4\u56de\u7ed3\u679c\u00a0<br \/>\nArray\u00a0<br \/>\n(\u00a0<br \/>\n\u00a0\u00a0\u00a0 [0] =&gt; HTTP\/1.1 200 OK\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Date] =&gt; Sat, 29 May 2004 12:28:14 GMT\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Server] =&gt; Apache\/1.3.27 (Unix)\u00a0 (Red-Hat\/Linux)\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Last-Modified] =&gt; Wed, 08 Jan 2003 23:11:55 GMT\u00a0<br \/>\n\u00a0\u00a0\u00a0 [ETag] =&gt; &#8220;3f80f-1b6-3e1cb03b&#8221;\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Accept-Ranges] =&gt; bytes\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Content-Length] =&gt; 438\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Connection] =&gt; close\u00a0<br \/>\n\u00a0\u00a0\u00a0 [Content-Type] =&gt; text\/html\u00a0<br \/>\n)\u00a0<br \/>\n?&gt;\u00a0<\/p><\/blockquote>\n<p>\u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u6839\u636eContent-Length\u6765\u83b7\u53d6\u5230\u8fdc\u7a0b\u6587\u4ef6\u7684\u5927\u5c0f\u4e86.<\/p>\n<p><strong>\u65b9\u6cd52:curl<\/strong><\/p>\n<blockquote><p>function remote_filesize($uri,$user=&#8221;,$pw=&#8221;)\u00a0<br \/>\n{\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ start output buffering\u00a0<br \/>\n\u00a0\u00a0\u00a0 ob_start();\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ initialize curl with given uri\u00a0<br \/>\n\u00a0\u00a0\u00a0 $ch = curl_init($uri);\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ make sure we get the header\u00a0<br \/>\n\u00a0\u00a0\u00a0 curl_setopt($ch, CURLOPT_HEADER, 1);\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ make it a http HEAD request\u00a0<br \/>\n\u00a0\u00a0\u00a0 curl_setopt($ch, CURLOPT_NOBODY, 1);\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ if auth is needed, do it here\u00a0<br \/>\n\u00a0\u00a0\u00a0 if (!emptyempty($user) &amp;&amp; !emptyempty($pw))\u00a0<br \/>\n\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $headers = array(&#8216;Authorization: Basic &#8216; . base64_encode($user.&#8217;:&#8217;.$pw));\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);\u00a0<br \/>\n\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0 $okay = curl_exec($ch);\u00a0<br \/>\n\u00a0\u00a0\u00a0 curl_close($ch);\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ get the output buffer\u00a0<br \/>\n\u00a0\u00a0\u00a0 $head = ob_get_contents();\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ clean the output buffer and return to previous\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ buffer settings\u00a0<br \/>\n\u00a0\u00a0\u00a0 ob_end_clean();\u00a0<br \/>\n\u00a0<br \/>\n\u00a0\u00a0\u00a0 echo &#8216;&lt;br&gt;head&#8211;&gt;&#8217;.$head.'&lt;&#8212;-end &lt;br&gt;&#8217;;\u00a0<br \/>\n\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ gets you the numeric value from the Content-Length\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ field in the http header\u00a0<br \/>\n\u00a0\u00a0\u00a0 $regex = &#8216;\/Content-Length:\\s([0-9].+?)\\s\/&#8217;;\u00a0<br \/>\n\u00a0\u00a0\u00a0 $count = preg_match($regex, $head, $matches);\u00a0<br \/>\n\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ if there was a Content-Length field, its value\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/ will now be in $matches[1]\u00a0<br \/>\n\u00a0\u00a0\u00a0 if (isset($matches[1]))\u00a0<br \/>\n\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $size = $matches[1];\u00a0<br \/>\n\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0 else\u00a0<br \/>\n\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $size = &#8216;unknown&#8217;;\u00a0<br \/>\n\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/$last=round($size\/(1024*1024),3);\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/return $last.&#8217; MB&#8217;;\u00a0<br \/>\n\u00a0\u00a0\u00a0 return $size;\u00a0<br \/>\n}\u00a0<\/p><\/blockquote>\n<p><strong>\u65b9\u6cd53:fsock<\/strong><\/p>\n<blockquote><p>function getFileSize($url)\u00a0<br \/>\n{\u00a0<br \/>\n\u00a0\u00a0\u00a0 $url = parse_url($url);\u00a0<br \/>\n\u00a0\u00a0\u00a0 if($fp = @fsockopen($url[&#8216;host&#8217;],emptyempty($url[&#8216;port&#8217;])?80:$url[&#8216;port&#8217;],$error))\u00a0<br \/>\n\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fputs($fp,&#8221;GET &#8220;.(emptyempty($url[&#8216;path&#8217;])?&#8217;\/&#8217;:$url[&#8216;path&#8217;]).&#8221; HTTP\/1.1\\r\\n&#8221;);\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 fputs($fp,&#8221;Host:$url[host]\\r\\n\\r\\n&#8221;);\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 while(!feof($fp))\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $tmp = fgets($fp);\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if(trim($tmp) == &#8221;)\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 break;\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 elseif(preg_match(&#8216;\/Content-Length:(.*)\/si&#8217;,$tmp,$arr))\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return trim($arr[1]);\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return null;\u00a0<br \/>\n\u00a0\u00a0\u00a0 }\u00a0<br \/>\n\u00a0\u00a0\u00a0 else\u00a0<br \/>\n\u00a0\u00a0\u00a0 {\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return null;\u00a0<br \/>\n\u00a0\u00a0\u00a0 }\u00a0<br \/>\n}<\/p><\/blockquote>\n<p>\u00a0<br \/>\n<strong>\u65b9\u6cd54:file_get_contents<\/strong><\/p>\n<blockquote><p>$fCont = file_get_contents(&#8220;<a href=\"https:\/\/www.cnmiss.cn\/\">https:\/\/www.cnmiss.cn\/<\/a>&#8220;);\u00a0<br \/>\necho strlen($fCont)\/1024;\u00a0<\/p><\/blockquote>\n<p>\u4ee5\u4e0a\u56db\u79cd\u65b9\u6cd5<br \/>\n<span style=\"color: #ff6600;\">curl <\/span>&gt; <span style=\"color: #ff6600;\">fsock<\/span> &gt; <span style=\"color: #ff6600;\">file_get_contents<\/span> &gt; <span style=\"color: #ff6600;\">get_header<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u83b7\u53d6\u672c\u5730\u6587\u4ef6\u5927\u5c0ffilesize()\u5c31\u53ef\u4ee5\u4e86,\u4f46\u662f\u5982\u4f55\u83b7\u53d6\u8fdc\u7a0b\u6587\u4ef6\u7684\u5927\u5c0f\u5462? \u8fd9 &hellip; <a href=\"https:\/\/www.cnmiss.cn\/?p=306\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[25],"class_list":["post-306","post","type-post","status-publish","format-standard","hentry","category-xxbj","tag-php"],"_links":{"self":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/posts\/306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=306"}],"version-history":[{"count":0,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/posts\/306\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}