自己一晚上总结的php基础知识!好累。好充实。

时间:2021-10-27 09:18:56

为了巩固自己的基础提升自己的技术。花了一晚上的时间结合w3c上的非常基础的东西,和自己的部分见解,写了不少,望大神们指正,指导。。

<?php
/*
这段话必须要写在开篇啊!死老猫,你又刺激我!不过认识你非常棒!不认识你我就不受刺激就不会知道自己有多傻逼!益友!谢谢你这么久的关照!还有你丫别考研了。你在考研我。。。。专科生怎么混???2014-03-08 06:03:07
   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++;//
echo "\n";
echo ++$a;//4 这里可以看出++$a 和$a++的区别。$a++先赋值给$a.++$a先加在赋值
//--那么同理
echo "<br>";
$a = 2;
echo $a--;//
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>";//
///=
$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;//
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;//
}
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 ?>