Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产在线视频在线,久久久99视频,好男人免费社区视频www

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          PHP編程

          PHP編程

          HP 是一種創(chuàng)建動(dòng)態(tài)交互性站點(diǎn)的強(qiáng)有力的服務(wù)器端腳本語言。

          PHP 是免費(fèi)的,并且使用非常廣泛。同時(shí),對于像微軟 ASP 這樣的競爭者來說,PHP 無疑是另一種高效率的選項(xiàng)。

          適用于PHP初學(xué)者的學(xué)習(xí)線路和建議

          PHP 開發(fā)工具推薦

          PHP 在線工具

          通過實(shí)例學(xué)習(xí) PHP

          我們的 PHP 在線實(shí)例讓您能夠更簡單的學(xué)習(xí) PHP,實(shí)例中包含了 PHP 的源碼及運(yùn)行結(jié)果。

          實(shí)例

          <!DOCTYPE html>

          <html>

          <body>

          <?php

          echo "Hello World!";

          ?>

          </body>

          </html>

          運(yùn)行實(shí)例 ?


          PHP 入門

          PHP 參考手冊

          PHP 函數(shù)的完整參考手冊:

          • Array 函數(shù)

          • Calendar 函數(shù)

          • cURL 函數(shù)

          • Date 函數(shù)

          • Directory 函數(shù)

          • Error 函數(shù)

          • Filesystem 函數(shù)

          • Filter 函數(shù)

          • FTP 函數(shù)

          • HTTP 函數(shù)

          • LibXML 函數(shù)

          • Mail 函數(shù)

          • Math 函數(shù)

          • Misc 函數(shù)

          • MySQLi 函數(shù)

          • SimpleXML 函數(shù)

          • String 函數(shù)

          • XML Parser 函數(shù)

          • Zip 函數(shù)

          、下載nginx和php的程序包

          1.NGINX官網(wǎng)下載

          2.PHP官網(wǎng)下載


          二、安裝和配置nginx和php

          1. 將nginx解壓到指定目錄下:

          a. 運(yùn)行nginx根目錄下的nginx.exe

          b. 打開瀏覽器訪問本地IP,

          c. 看看是否出現(xiàn)“Welcome to nginx!”,出現(xiàn)的證明已經(jīng)啟動(dòng)成功了。

          d. 沒有啟動(dòng)的話,看看80端口有占用沒。

          nginx命令:

          重新加載配置文件:nginx -s reload;

          退出:nginx -s stop;


          2. 將php和nginx解壓到指定目錄下

          a. php根目錄下的php.ini-recommended文件復(fù)制一份并改名為php.ini,用文本編輯器將它打開。(具體配置信息請參考文件php-示例.ini)

          i. 將 ;extension_dir="ext"改成extension_dir="./ext"

          注意去掉前面的”;“。

          ii. 將;cgi.force_redirect=1前面的”;“去掉。

          iii. 將;extension=php_curl.dll前面的”;“去掉。

          iv. 將;extension=php_gd2.dll前面的”;“去掉。

          v. 將;extension=php_mbstring.dll前面的”;“去掉。

          vi. 將;extension=php_mysqli.dll前面的”;“去掉。

          vii. 將;extension=php_openssl.dll前面的”;“去掉。

          viii. 將;extension=php_pdo_mysql.dll前面的”;“去掉。

          b. 在根目錄下新加文件php-cgi.vbs在里面填寫以下內(nèi)容:

          set wscriptObj=CreateObject("Wscript.Shell")

          wscriptObj.run "php-cgi -b 127.0.0.1:9000",0

          雙擊php-cgi.vbs文件啟動(dòng)php

          3. 在\nginx\html下新建一個(gè)phpinfo.php在里面填寫以下內(nèi)容:

          <?php phpinfo(); ?>

          4. 訪問url/phpinfo.php

          5. 出現(xiàn)如下的信息就說明php已經(jīng)成功安裝:


          三、部署項(xiàng)目

          1.打開/nginx/conf下的nginx.conf文件來配置nginx(具體配置信息請參考文件 nginx-示例.conf)

          注意:兩個(gè)server端口號一樣時(shí)需要另外配置域名;

          host文件地址:C:\Windows\System32\drivers\etc

          host文件中添加自己需要的域名


          希望我的分享可以幫助到你,如果你在內(nèi)容技術(shù)上遇到難題,可以+關(guān)注■@主引教程 ,反饋給我們。我們會(huì)及時(shí)回復(fù),如果有那些內(nèi)容有誤可以直接提出來,我們會(huì)及時(shí)糾正,謝謝來訪。

          、PHP配置文件中和上傳文件有關(guān)的選項(xiàng)


          file_uploads=on 設(shè)置php腳本是否可以接受HTTP文件上傳


          memory_limit=8M 設(shè)置腳本可以分配的最大內(nèi)存量, 防止失控的腳本獨(dú)占服務(wù)器內(nèi)存

          upload_max_filesize=200M 限制php處理上傳文件大小的最大值, 此值必須小于post_max_size的值

          最大不要超過服務(wù)器的內(nèi)存

          upload_tmp_dir=c:/uploads/ 上傳文件存放的臨時(shí)路徑(默認(rèn)值:使用操作系統(tǒng)的臨時(shí)目錄), 該臨時(shí)文件的有效期就是腳本周期:

          post_max_size=250M 限制通過post方法可以接受信息的最大值

          此值除了包含上傳文件的大小, 還包含表單中的數(shù)據(jù), 因此此值必須大于upload_max_filesize



          限制文件上傳的兩個(gè)參數(shù):

          post_max_size=150M

          upload_max_filesize=100M

          post_max_size 必須大于 upload_max_filesize


          max_execution_time PHP執(zhí)行的最大時(shí)間

          max_input_time php 解析post/get數(shù)據(jù)所用的最大時(shí)間


          如何獲取服務(wù)器能夠上傳的文件大小

          <?php
          function get_upload_max_size(){
          		return min(intval(get_cfg_var('upload_max_filesize')),intval(get_cfg_var('post_max_size')),intval(get_cfg_var('memory_limit')));
          }
          echo get_upload_max_size(); //3200M
          


          二、上傳表單需要的注意事項(xiàng)

          1. 如果有文件上傳操作表單的提交方法必須 HTTP post

          2. 表單上傳需要使用type為file的表

          3. enctype="multipart/form-data" 只有文件上傳時(shí)才使用這個(gè)值, 用來指定表單編碼的數(shù)據(jù)方式, 讓服務(wù)器知道, 我們要傳遞

          一個(gè)文件并帶有常規(guī)的表單信息。

          4. 建議添加一個(gè) MAX_FILE_SIZE 隱藏表單, 值的單位也是字節(jié)

          <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />

          三、PHP處理上傳的數(shù)據(jù)

          $_POST 接收非上傳的數(shù)據(jù)

          如果是文件上傳的數(shù)據(jù)則使用 $_FILES處理上傳的文件

          <?php
          //step 1 使用$_FILES['pic']["error"] 檢查錯(cuò)誤
          if($_FILES["pic"]["error"] > 0){
              switch($_FILES["pic"]["error"]) {
              case 1:
                  echo "上傳的文件超過了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值<br>";
                  break;
              case 2:
                  echo "上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值";
                  break;
              case 3:
                  echo "文件只有部分被上傳";
                  break;
              case 4:
                  echo "沒有文件被上傳";
                  break;
              default:
                  echo "末知錯(cuò)誤";
              }
          
              exit;
          }
          
          $maxsize=5000000; //50k
          //step 2 使用$_FILES["pic"]["size"] 限制大小 單位字節(jié) 2M=2000000
          if($_FILES["pic"]["size"] > $maxsize ) {
              echo "上傳的文件太大,不能超過{$maxsize}字節(jié)";
              exit;
          }
          //step 3 使用$_FILES["pic"]["type"]或是文件的擴(kuò)展名 限制類型 MIME image/gif image/png gif png jpg
          /* list($dl, $xl)=explode("/", $_FILES["pic"]["type"]);
          if($dl!="image"){
          echo "請上傳一個(gè)圖片,不充許其它類型文件";
          exit;
          }
          
          */
          //$hz=strrchr($_FILES["pic"]["type"], "."); 后綴名含有"."
          $allowtype=array("png", "gif", "jpg", "jpeg");
          $arr=explode(".", $_FILES["pic"]["name"]);
          $hz=$arr[count($arr)-1];
          if(!in_array($hz, $allowtype)){
              echo "這是不充許的類型";
              exit;
          }
          
          
          //step 4 將讓傳后的文件名改名
          
          $filepath="./uploads/"; //文件上傳不要采用根路徑 $filepath="/uploads/", 否則會(huì)報(bào)錯(cuò)
          $randname=date("Y").date("m").date("d").date("H").date("i").date("s").rand(100, 999).".".$hz;
          //將臨時(shí)位置的文件移動(dòng)到指定的目錄上即可
          if(is_uploaded_file($_FILES["pic"]["tmp_name"])){
              if(move_uploaded_file($_FILES["pic"]["tmp_name"], $filepath.$randname)){
                  echo "上傳成功";
              }else{
                  echo "上傳失敗";
              }
          }else{
          echo "不是一個(gè)上傳文件";
          }

          多文件上傳結(jié)構(gòu)

          多個(gè)文件上傳后$_FILES 數(shù)組結(jié)構(gòu)圖

          Array(
          [myfile]=>Array(
          [name]=>Array( //$_FILES["myfile"]["name"]存儲(chǔ)所有上傳文件的內(nèi)容
          [0]=>Rav.ini //$_FILES["myfile"]["name"][0]第一個(gè)上傳文件的名稱
          [1]=>msgsocm.log //$_FILES["myfile"]["name"][1]第二個(gè)上傳文件的名稱
          [2]=>NOTEPAD.EXE) //$_FILES["myfile"]["name"][2]第三個(gè)上傳文件的名稱
          [type]=>Array( //$_FILES["myfile"]["type"]存儲(chǔ)所有上傳文件的類型
          [0]=>application/octet-stream //$_FILES["myfile"]["type"][0]第一個(gè)上傳文件的類型
          [1]=>application/octet-stream //$_FILES["myfile"]["type"][1]第二個(gè)上傳文件的類型
          [2]=>application/octet-stream) //$_FILES["myfile"]["type"][2]第三個(gè)上傳文件的類型
          [tmp_name]=>Array(
          [0]=>C:/WINDOWS/Temp/phpAF.tmp
          [1]=>C:/WINDOWS/Temp/phpB0.tmp
          [2]=>C:/WINDOWS/Temp/phpB1.tmp)
          [error]=>Array(
          [0]=>0
          [1]=>0
          [2]=>0)
          [size]=>Array(
          [0]=>64
          [1]=>1350
          [2]=>66560))
          )
          

          實(shí)例:

          <html>
          <head>
          <meta charset="utf-8">
          <title>index_uploads</title>
          </head>
          <body>
          <form action="uploads.php" method="post" enctype="multipart/form-data">
          <input type="file" name="file[]">
          <br>
          <input type="file" name="file[]">
          <br>
          <input type="submit" value="uploads">
          </form>
          </body>
          </html>
          <?php
          header("content-type:text/html;charset=utf-8");
          echo "<pre>";
          print_r($_FILES);
          echo "</pre>";
          
          $count=count($_FILES['file']['name']);
          
          for ($i=0; $i < $count; $i++) {
              $tmpfile=$_FILES['file']['tmp_name'][$i];
              $filefix=array_pop(explode(".", $_FILES['file']['name'][$i]));
              $dstfile="uploads/files/".time()."_".mt_rand().".".$filefix;
          
              if (move_uploaded_file($tmpfile, $dstfile)) {
                  echo "<script>alert('succeed!');window.location.href='index_uploads.php';</script>";
              } else {
                  echo "<script>alert('fail!');window.location.href='index_uploads.php';</script>";
              }
          }
          ?>
          

          相關(guān)函數(shù)

          is_uploaded_file() 判斷文件是否是通過 HTTP POST 上傳的

          bool is_uploaded_file ( string $filename )

          move_uploaded_file() 將上傳的文件移動(dòng)到新位置

          bool move_uploaded_file ( string $filename , string $destination )

          $filename $_FILES["name"]["tmp_name"]

          $destination 移動(dòng)文件到這個(gè)位置(包含文件的路徑和文件名)

          注意: 上傳文件的腳本的所有者一定要有"w"的權(quán)限;

          大文件上傳時(shí)延長上傳時(shí)間:

          @set_time_limit(0);

          新建表單

          <form action='deal.php' method='post' enctype='multipart/form-data'>
          選擇頭像:<input type='file' name='file' />
          <hr />
          <input type='submit' name='submit' value='上傳' />
          </form>

          deal.php

          <?php
          //1、設(shè)置響應(yīng)頭信息
          header('Content-type:text/html; charset=utf-8');
          //2、獲取上傳文件信息
          if($_FILES['file']['size'] > 0) {
              $file=$_FILES['file']['name'];
              $filename=getRandName($file);
              //3、把臨時(shí)文件上傳到uploads文件夾下(move_uploaded_file函數(shù))
              if(move_uploaded_file($_FILES['file']['tmp_name'],'uploads/'.$filename)) {
                  echo '上傳成功';
              } else {
                  echo '上傳失敗';
              }
          }
          //定義一個(gè)函數(shù),用于獲取隨機(jī)文件
          function getRandName($file) {
              //定義一個(gè)變量,用于接收新名稱
              $newname=date('YmdHis');
              //定義一個(gè)字符串
              $str='abcdefghijklmnopqrstuvwxyz';
              //隨機(jī)取出其中6個(gè)字符
              for($i=0;$i<6;$i++) {
              $newname .=$str[mt_rand(0,strlen($str)-1)];
              }
              //返回生成后的新文件名稱
              return $newname . strrchr($file,'.');
          }
          ?>

          多維$_FILES['uploadFile']數(shù)組進(jìn)行轉(zhuǎn)換

          foreach($_FILES['uploadFile'] as $k=>$v){
              foreach($v as $key=>$value){
                  if($key==$key){
                  $arr[$key][$k]=$value;
                  }
              }
          }
          echo "<pre>";
          print_r($arr);
          echo "</pre>";


          原數(shù)組的格式

          Array
          (
          [name]=> Array
          (
          [0]=> laravel框架.txt
          [1]=> ecshop分析.txt
          [2]=> 注釋.txt
          )
          [type]=> Array
          (
          [0]=> text/plain
          [1]=> text/plain
          [2]=> text/plain
          )
          [tmp_name]=> Array
          (
          [0]=> C:\Windows\php562C.tmp
          [1]=> C:\Windows\php562D.tmp
          [2]=> C:\Windows\php563E.tmp
          )
          [error]=> Array
          (
          [0]=> 0
          [1]=> 0
          [2]=> 0
          )
          [size]=> Array
          (
          [0]=> 12506
          [1]=> 138
          [2]=> 2094
          )
          )

          轉(zhuǎn)換后數(shù)組格式:


          主站蜘蛛池模板: 精品一区二区三区四区| 国产精品女同一区二区久久| 极品少妇一区二区三区四区| 精品少妇人妻AV一区二区三区| 精品久久久久久中文字幕一区| 真实国产乱子伦精品一区二区三区 | 日本精品无码一区二区三区久久久 | 久久国产午夜一区二区福利| 日本一区二区三区在线视频| 国产视频一区在线播放| 精品一区二区三区| 中文字幕日韩精品一区二区三区| 国精品无码一区二区三区左线| 国产日韩高清一区二区三区| 无码精品久久一区二区三区| 国产一区二区三区四| 国产福利微拍精品一区二区| 国产精品一区二区久久| 自拍日韩亚洲一区在线| 天堂va在线高清一区| 亚洲国产成人精品无码一区二区| 精品性影院一区二区三区内射| 无码精品人妻一区二区三区免费看| 在线精品亚洲一区二区三区 | 亚洲av成人一区二区三区在线播放| 91香蕉福利一区二区三区| 精品无码一区在线观看| 国产精品一区视频| 午夜一区二区在线观看| 鲁大师成人一区二区三区| 亚洲AV无码一区二区三区在线观看| 影院无码人妻精品一区二区| 97久久精品午夜一区二区| 国产精品伦一区二区三级视频| 色老头在线一区二区三区| 农村乱人伦一区二区| 男人的天堂av亚洲一区2区| 视频在线观看一区二区三区| 插我一区二区在线观看| 亚洲福利视频一区二区三区| 人妻夜夜爽天天爽一区|