ホームページ  >  記事  >  バックエンド開発  >  PHP にはパスワード機能があり、リモート ファイルをダウンロードしてローカルの指定ディレクトリに保存します。 拡張版_PHP チュートリアルを変更します。

PHP にはパスワード機能があり、リモート ファイルをダウンロードしてローカルの指定ディレクトリに保存します。 拡張版_PHP チュートリアルを変更します。

WBOY
WBOYオリジナル
2016-07-21 15:37:45827ブラウズ

PHP にはパスワード機能があり、リモート ファイルをダウンロードしてローカルの指定ディレクトリに保存します。 拡張版_PHP チュートリアルを変更します。
オリジナルの作成者 BlueStyle は改善を提案しました:

以前のアルゴリズムはファイルがダウンロードされるのを待ってから計算するものでしたが、
このアルゴリズムはファイルを取得するときにサイズを直接計算するようになりました
フォールトトレラントなステートメントを追加しました
判定ディレクトリを追加しました、ディレクトリは自動的に作成されません
ファイル サイズを計算するためのアルゴリズムが変更されました。以前のコードではファイル サイズを計算するのに 7 行しか必要ありませんでした。現在は、元の作成者の著作権情報を保持してください。転載する場合は、作者が公務員であるため、トラブルを避けるため、このテキストの整合性を保ってください



コードをコピー

コードは次のとおりです:

Happy Feiyang Blog-リモート ファイル ダウンロード< /title> </div></head> <div class="codebody" id="code52586"><body > <br><form method="post"> <br>< li>ファイル: <input name="url" size="40" /> <BR> <input name="submit" type="submit" /><li> パス: < ;input name="password" type="password" /></form> <br><br> <br>PHP コード: <br><br><br><br> コードは次のとおりです: <br><br> <br>< ;?php </div># Copyright 2010 Happy Flying<BR># http://www.klfy.org/ 初心者向けリファレンス <BR>set_time_limit (0) //時間制限なし 24 * 60 * 60 <div class="codetitle">$password = 'admin'; //パスワードを管理 <span style="CURSOR: pointer" onclick="doCopy('code44300')">$pass = $_POST['password']; <U>if ($pass == $password) { </U>var $StartTime = 0; </span>function get_microtime() {list($usec, $sec) =explode(' ', microtime()); </div>return ((float) $usec + (float)$sec);} <div class="codebody" id="code44300">function start() {$this->StartTime = $this->get_microtime();} <BR>関数 stop() {$this->StopTime = $this- >get_microtime();} <br>関数 Spent() { returnround(($this->StopTime - $this->StartTime) * 1000, 1);} <br>} <br>$runtime= 新しいランタイム; <br>$runtime ->start(); <br>if (!isset($_POST['submit'])) die( ); <br>$destination_folder = './Download/' // ダウンロードされたファイルの保存ディレクトリ。スラッシュで終わる必要があります<br>if(!is_dir($destination_folder)) //ディレクトリが存在するかどうかを判断します<br>mkdir($destination_folder,0777); //存在しない場合は、ディレクトリを作成し、Windows に無視されます<br>$url = $_POST ['url']; <br>$headers = get_headers($url, 1); //ファイルサイズを取得します<br>if ((!array_key_exists("Content-Length", $headers)) {$filesize=0; <br>$ newfname = $destination_folder .basename($url); <br>$file = fopen ($url, "rb") { <br>$newf = fopen ($newfname, "wb"); if ($ newf) <br>while(!feof($file)) {fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );} <br>} <br>if ($file) {fclose($file) );} <br>if ($newf) {fclose($newf);} <br>$runtime->stop(); <br>echo '<br /><li>ダウンロード時間:<font color="blue "> ; '.$runtime->spent().' </font>マイクロ秒、ファイル サイズ<font color="blue"> '.$headers["Content-Length"].' ;byte</li>'; <br>echo '<br /><li><font color="red">ダウンロードが成功しました。 '.$showtime=date("Y-m-d H:i:s").'</font></li>'; <br>}elseif(isset($_POST['password'])){ <br>echo '< ;br /><li><font color="red">パスワードが違います!パスワードを再入力してください!</font></li>' <br></body> <br><br>; <br> <br><br><br>http://www.bkjia.com/PHPjc/321903.html<br><br>www.bkjia.com<br><br>tru​​e<br><br>http://www.bkjia.com/PHPjc/321903.html<br><br>技術記事<br><br>元の作者である BlueStyle は改善を提案しました。以前のアルゴリズムは、ファイルがダウンロードされるまで待ってから計算するようになりました。このアルゴリズムは、ファイルを取得するときにサイズを直接計算し、判断力を高めるためにフォールト トレラントなステートメントを追加します。 <br><br> </div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="configuration.php を使用して Joomla_PHP チュートリアルで単純なデータを保存する" href="http://m.php.cn/ja/faq/309872.html">configuration.php を使用して Joomla_PHP チュートリアルで単純なデータを保存する</a></span><span>次の記事:<a class="dBlack" title="configuration.php を使用して Joomla_PHP チュートリアルで単純なデータを保存する" href="http://m.php.cn/ja/faq/309874.html">configuration.php を使用して Joomla_PHP チュートリアルで単純なデータを保存する</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="http://m.php.cn/ja/about/us.html">私たちについて</a><a href="http://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="http://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>