首页 > php技术 > php基础知识> 详细内容
结合w3c上的非常基础的东西,和自己的部分见解
日期:2019-01-02 
date_default_timezone_set('PRC');
   echo date("Y-m-d");//设置时区。搞定
     echo date("Y-m-d h:m:s",strtotime("-4 hours 1500 seconds"));我电脑时间是乱的。我这样写。。。也不出正确的结果。
*/
      echo"<br>";
     $a = "wangqiyang"; 
     echo strlen($a);echo "<br>";
     echo strpos($a,"qi")."<br>";
     /*翻了翻自己在csdn上的回复发现了strpos的用法。xunzuning提供的,php板块第一牛人!
         <input id="flaga" type ="checkbox" value="a" name="flags[]"<?php if(strpos($row['flag'],'c') !== false) echo "checked='checked'" ?>/>特荐[a]
            strpos 返回整数(找不到返回逻辑假)
            'true' 在数值比较中被转换为 0
            如果 $row['flag'] 第一个字符为 c 时,恰巧被匹配
            其他字符返回的都不是 0,所以不会匹配成功
     */
     //运算符//++
     $a = 2;

     echo $a++;//2
     echo "\n";
     echo ++$a;//4  这里可以看出++$a 和$a++的区别。$a++先赋值给$a.++$a先加在赋值
     //--那么同理
     echo "<br>";
     $a = 2;
     echo $a--;//2
     echo "\n";
     echo --$a."<br>";//0
     //=
     $a = 3;
     $b = $a;
     echo $b."<br>";
     //+=
     $x=1;
     $z = 3;
     $x+=$z;//$x=$z+$x
     echo $x."<br>"; //6
     //-=
     $d=1;
     $c=1;
     $d -= $c;
     echo $d."<br>";//0
     //*=
     $a=2;
     $b=3;
     $b *= $a;//$b = $b*$a
     echo $b."<br>";//6
     ///=
     $a=2;
     $b=2;
     echo $a /= $b;
     echo "<br>";
     //.=
     $a=1;
     $b=2;
     echo $a.=$b."<br>";//12 .=比较常用
     $a = "wang";
     $b = "zhao";
     echo $a.=$b."<br>";//wangzhao
     //%=
     $a=1;
     $b=2;
     echo $a/=$b;//0.5
     echo "<br>";
     //==  双等于就是值相等比如false==0这个也是真的。
     $a="false";
     $b=0;
     echo $a==$b;//1
     echo "<br>";
      // === 绝对相等。就是值和类型都相等
     $a = 1 ;
     if($a === true){
         echo 1;
     }else{
         echo 0;
     }
     echo "<br>";
     //&&中文和的意思
     $a=3;
     $b=2;
     if($a>0&&$b>0){
         echo 1;
         echo "<br>";
     }
     //||中文非得意思。即两个条件中有一个为真就是真
     $a = 2;
     $b = 3;
     if($a>0||$b<0){
         echo 1;
         echo "<br>";
     }
     $a = 2;
     $b = 3;
     $c = 4;
     $d = 5;
     if($a>0&&$b>0||$c>5){
         echo "true";
     }else{
         echo "false";
     }
     echo "<br>";//通过这个例子可以看到php中运算方式也是从左到又的并没有超过我们的认知^_^
     //!   不等于
     $a = 2;
     if($a != 3){
         echo true;
     }
     echo "<br>";
    
     //switch语句
     $aa=1;
     switch ($aa) {
         case '1':
             echo "this is 1";//输出this is 1
             break;
         
         default:
             echo "nothing";
             break;
     }
     echo "<br>";
     $aa=2;
     switch ($aa) {
         case '1':
             echo "this is 1";
             break;
         
         default:
             echo "nothing";//输出nothing
             break;
     }
     echo "<br>";//switch好像是比if  else运行的速度快。
     //数组
     $a = array(1,2,3);//一位数组
     echo $a[0]."\n".$a[1]."\n".$a[2]."<br>";//数组的键值是从0开始的不是1
     $aa = array(1=>2,2=>3,3=>4);
     echo $aa[1]."\n".$aa[2]."\n".$aa[3];//这样就改变了键值
     //print_r($a);//打印数组常用方法
     echo "<br>";
     $aaa = array("one"=>array("a","b"),"two"=>array("c","d"),"there"=>array("e","f"));
     echo $aaa['one'][1]."\n".$aaa['two'][1];//b d。这就是取得数组中某个固定位置的方法
     echo "<br>";
     //while 循环
     $a = 1;
     while($a<4){
         $a++;
         echo "\n";
         echo $a;//234
     }
     echo "<br>";
     //do while
     $a = 0;
     do{
         $a++;
         echo "\n";
         echo $a;
     }while ($a>4);//1 先执行do有上至下
     echo "<br>";
     //for循环
     for($i=0;$i<3;$i++){
         echo "3次";
     }
     echo "<br>";
      //复杂点的用strlen函数
     $a = "wang";
     for($i=0;$i<strlen($a);$i++){
         echo "\n";
         echo "4ci";
     }
     echo "<br>";
     //foreach循环
     $a = array(1 ,2,3,4,5 );
     foreach ($a as $k=>$v){
         echo $k."=>";
         echo $v;
         echo "\n";
     }
     echo '<form action="test.php" method="post">';
     echo '<input type="text"name="name">';
     echo '<input type="submit" value="submit">';
     echo '</form>';
     //$name = $_POST['name'];
     $name = $_REQUEST['name'];//不论你用哪种方法传参都可以用$_REQUEST接收,但是并不建议使用这种方法,因为他影响执行效率。在博客上看到的具体有多影响不清楚。
     echo $name;//post和get传参的区别。post能传递比较大的数据而get只能专递比较小的。post将不会显示参数get可以显示参数
     echo "<br>";
     //时间戳。终于到这里了。死熊猫问我时间戳是什么。我回答说:自1几年到现在的时间单位好像是毫秒。然后他说,非常好!如果我是面试官很高兴给你刷下去了!死猫,我和他要了半天他的面试题都不给强烈鄙视之!手册上如是写到:时间戳是1970年1月1日到现在的秒数!
     //date函数
     //当前时间.
  date_default_timezone_set("PRC");
     echo date("Y-m-d h:i:s");//2014-03-08 05:43:50不知道这个苦比的电脑是怎么回事显示这个结果。。现在正确的时间是01:44
     echo "<br>";
     echo time("Y-m-d");//1394300809time()函数将给当前时间显示成时间戳格式
     echo "<br>";
     echo date('Y-m-d h:i:s',"1394300809");//将时间戳转换为时间格式。
     //显示明天、明天、下周、下个月的时间
     echo "<br>";
     echo date('Y-m-d',strtotime('-1 day'));//昨天
     echo "<br>";
     echo date('Y-m-d',strtotime('+1 day'));//明天
     echo "<br>";
     echo date('Y-m-d',strtotime('+1 week'));//下周的今天
     echo "<br>";
     echo date('Y-m-d',strtotime('+1 month'));//下个月。这里充分的说明这是老外开发的。。。
     /*
     include,require,include_once,require_once
     include 可以没有没有也会继续向下执行
     require 必须有没有就会报出一个致命的错误,结束运行
     include_onece 顾名思义之引入一次require_once同理
     include 'aa.php';这四个东西大多用于引入那些封装的方法。比如数据库的连接的封装方法
     */
     //大块头。文件的上传。由于大学的时候没有好好学习!导致html基础超差!php和html混写一直是我的痛!这些是照着w3c手册超的^_^
     echo '<form action="test.php" method="post" enctype="multipart/form-data">';//enctype是form标签的。表示你在提交表单时要使用那种类型。不懂要去百度。。。
     echo '<label for="file">文件名:</label>';
     echo '<input type="file" name="file" id="file"/>'."<br>";
     echo '<input type="submit" name="submit" value="上传"/>';//在chorm浏览器中汇显示未选择文件和已选择的上传的文件名称。ie浏览器中就不可以。。ie果然坑爹!
     if(($_FILES["file"]["type"]=="image/gif")||($_FILES["file"]["type"]=="image/jpeg")||($_FILES["file"]["type"]=="image/pjpeg")&&($_FILES["file"]["size"]<200000)){
         if (($_FILES["file"]["error"])>0) {
             echo "错误提示:".$_FILES["file"]["error"]."<br>";
         }else{
             echo "文件名:".$_FILES["file"]["name"]."<br>";
             echo "文件类型:".$_FILES["file"]["type"]."<br/>";
             echo "文件大小:".($_FILES["file"]["size"]/1024)."kb<br/>";
             echo "储存位置:".$_FILES["file"]["tmp_name"]."<br/>";
             if(file_exists("asd/".$_FILES["file"]["name"])){
                 echo $_FILES["file"]["name"]."文件名存在。";
             }else{
                 move_uploaded_file($_FILES["file"]["tmp_name"],"asd/".$_FILES["file"]["name"]);//这行代码提示错误!但是下面的echo还是出来了!不知道怎么回事!!!现在头晕有时间再改,死猫看到的话测试下,为什么提示错误!谢谢!
                 echo "储存成功!";
             }
         }
     }
     else{
         echo "无效文件!";
     }
     echo "<br>";
     /*cookie session这块好难,我也不会啊。用得太少了。应用的很多但是我用得很少,没法子只能把w3c教程抄写一遍了!
     cookie常用与识别用户。比如我登陆一个网站,访问不同页面就用到cookie因为他你才不必每访问一个页面就输入一次账号密码。涉及到header信息?这里就更不懂了!死猫教我。我好像写错了,看到session我感觉好像写错了!
     创建cookie函数:setcookie();
     语法setcookie(name(cookie名字),value(赋值),expire(过期时间),path(路径),domain(域?不懂!求解释));
     setcookie()必须写在html前面:
     <?php
         setcookie("panda","badpanda",time()-360000000000000000);你去死吧!哈哈,原来写代码挺好玩的吗!
     ?>
     <html>
         <head>cookie应用</head>
        <body>
            <?php
                if(isset($_COOKIE("panda"))){
                    echo "去死吧!".$_COOKIE["user"]."<br/>";
                }else{
                    echo"由于未操作时间过久请重新登陆";//这里我想叫他跑到登陆页面,怎么写?
            $url = "xxx";
            echo "< script language='javascript' type='text/javascript'>";
            echo "window.location.href='$url'";  
            echo "< /script>";  
                }
            ?>
        </body>
     </html>



     */






     //php操作mysql增删改查系列!绝对自己写的。哈哈,因为昨天面试就是这个,深受打击故好好写了写。首先在数据库中建立一个表test两个字段一个自增的id一个姓名dos里的就不写了,不是很熟悉~直接用phpmyadmin建了!
     //服务器名
     $mysql_sname = "localhost";
     //用户名
     $mysql_uname = "root";
     //密码
     $mysql_pwd = "";
     //数据库名
     $mysql_dbname = "badpanda";
     //连接数据库
     $conn = mysql_connect($mysql_sname,$mysql_uname,$mysql_pwd) or die("数据库连接失败!");
     //选择操作的库
     mysql_select_db($mysql_dbname,$conn);
   //设置编码格式
   mysql_query("SET NAMES UTF-8");
     //插入数据
     $sql_i = "insert into test values('','熊猫')";//我刚才插入数据库之后成为了乱码(已解决)
     mysql_query($sql_i);
     //查询显示数据
     $sql_s = "select * from test";
     $result = mysql_query($sql_s);
     //提取并显示数据
     while ($row = mysql_fetch_row($result)) {
          echo "<br>";
          for($i=0;$i<count($row);$i++){
              echo $row[$i];
          }
      }
      //只显示第一条数据
      /*$row = mysql_fetch_row($result);
      print_r($row);*/
      //删除
      $sql_d = "delete from test where id=1";
      mysql_query($sql_d);
      //更新
      $sql_u = "update test set name = 'fuck' where id=2";
      mysql_query($sql_u);
      mysql_close($conn);
      /*
      自己工作这几个月接触到的个人认为比较复杂的sql。方正当时自己是不会写。。由此可见自己是有多渣难怪能猫老是嘲讽我。。
      select * from tt a where 2>=(select count(*) from tt where a.title=title);
      select userid,group_concat( title),group_concat(distinct oid) from `djs_shops_products` group by userid; 
      left join 还是死猫告诉我的。。跟你混学到不少知识。据说这个效率高?
      */


      //php与xml



      //php与ajax