2017.03.02-2017.09.28 日常随笔

1、ping域名能指定到对应ip即代表解析成功。请求超时有可能是ping防火墙关闭原因。
2、2014phpstudy升级到2016.目前项目2016用到的都是5.2.17版本。并设置对应版本的配置。
3、hosts右击无管理员运行选项,可以用管理员身份打开记事本,再去打开hosts
4、linux无法远程登录。购买的服务器可以更换系统盘
5、数据库盘的挂载
6、对动态磁盘的了解,不受盘符限制,称为卷
7、hosts的意义
8、解决文件clearup失败的原因
9、解决HTTP错误代码500的原因
10、打开磁盘管理器:diskmgmt.msc
11、删除服务  sc delete 服务名称
12、查看apache版本   cd到bin目录    httpd -v
13、查看本地IP地址:ipconfig
14、json_encode(将数组和对象,转换为json格式)
       json_decode(将json文本转换为相应的PHP数据结构。)
       json只接受utf-8编码的字符,json_encode()的参数必须是utf-8编码。
例:对象转化为json格式
class person
{
    public $name;
    public $age;
    public $height;
    function __construct($name,$age,$height)
    {
        $this->name = $name;
        $this->age = $age;
        $this->height = $height;  
    } 
}

$obj = new person("zhangsan",20,100);
$foo_json = json_encode($obj);
echo $foo_json;

输出结果:
{"name":"zhangsan","age":20,"height":100}

 

{"country":"zg","province":[{"name":"hb","city":[{"name":"hs"},{"name":"zjk"},{"name":"sjz"}]},{"name":"bj","city":[{"name":"ft"},{"name":"cy"},{"name":"tz"}]}]}
{"country":"zg","province":[{"hb":["哈尔滨","大庆"]},{"bj":["广州","深圳","珠海"]}]}
总结:键值对{},多个值[]


通常情况下,json_decode()总是返回一个PHP对象。转换成数组var_dump(json_decode($json,ture));

15、静态属性,静态方法的使用
class user  
{    
    private static $count = 0 ; //记录所有用户的登录情况.    
    public function __construct() {    
        self::$count = self::$count + 1;    
    }    
    public function getCount() {      
        return self::$count;    
    }    
    public function __destruct() {    
        self::$count = self::$count - 1;    
    }    
}    
$user1 = new user();    
$user2 = new user();    
$user3 = new user();    
echo "now here have " . $user1->getCount() . " user";    
echo "<br />";    
unset($user3);    
echo "now here have " . $user1->getCount() . " user";

16、抓包工具
17、删除连接在本地计算机上的远程连接计算机ip及密码信息
 控制面板\用户帐户\凭据管理器
18、看看一个ip是否解析成功。ping一下!
19、去掉IE浏览器的友好提示。internet选项=》高级=》设置=》显示友好HTTP错误消息
20、磁盘联机:使用DISKPART.exe命令 解除策略
1.运行:cmd
2.输入:DISKPART.exe搜索
3.DISKPART> san
4.DISKPART> san policy=onlineall
5.DISKPART>list disk
6.DISKPART> select disk 1
7.DISKPART>attributes disk clear readonly
8.DISKPART>online disk


取消磁盘活动分区:
DISKPART
DISKPART>LIST DISK
DISKPART>SELECT DISK 1
DISKPART>SELECT PARTITION 1
DISKPART>INACTIVE


磁盘足够的情况下,安装软件显示磁盘空间不够
计算机=》属性=》/控制面板=》系统和安全=》系统=》高级=》性能、设置=》高级=》程序、更改=》盘符=》系统管理的大小、设置=》一路确定

 


21、只有苹果需要https证书。(APP需要,wap不需要)
22、开放平台主要针对app,公众平台是对属于wap公众号的后台。
23、访问localhost出现403错误。允许目录列表。
24、修改apache端口及默认目录:phpStudy设置=》端口常规设置
25、SELECT DISTINCT title from table   查重
26、window打开一个新窗口,并且显示父窗口地址

<head>
<script>
function openWin(){
 window.open('','','width=200,height=100');
 alert(window.parent.location);
}
</script>
</head>
<body>

<input type="button" value="打开窗口" onclick="openWin()">

</body>
27、查看端口被谁使用:
 netstat -ano
       查看被占用端口PID
 netstat -aon|findstr “上面端口号”
       查看哪个进程netstat -ano
或者程序占用端口
 tasklist|findstr "PID"
28、表复制
INSERT INTO t1 SELECT * FROM t2
29、静态方法可以不用实例化直接用类名调用,类名::方法名  /   self::方法名
        静态方法只能访问静态成员
        静态属性和静态方法只占用一块内存,也就是说静态属性、方法所有实例对象公用一块内存,一经定义长期使用。共用。用户登录样例。
<?PHP    
class user  
{    
    private static $count = 0 ; //记录所有用户的登录情况.    
    public function __construct() {    
        self::$count = self::$count + 1;    
    }    
    public function getCount() {      
        return self::$count;    
    }    
    public function __destruct() {    
        self::$count = self::$count - 1;    
    }    
}    
$user1 = new user();    
$user2 = new user();    
$user3 = new user();    
echo "now here have " . $user1->getCount() . " user";    
echo "<br />";    
unset($user3);    
echo "now here have " . $user1->getCount() . " user";    
?>
弊端不可以自动销毁
30、 microtime() 调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。  相加即为当前时间戳
date_default_timezone_set("PRC");
echo (microtime()); //0.83228000 1499050152
$mtime=explode(' ',microtime());
$startTime=$mtime[1]+$mtime[0];      
echo $startTime; //1499050193.0206
echo date('Y-m-d H:i:s',time());
将时间转化为时间戳:
echo strtotime('17-07-22 00:00:00');
例:
date_default_timezone_set('prc');
echo strtotime('now'),'<br>';//现在
echo strtotime('today'),'<br>';//今天
echo strtotime('tomorrow'),'<br>';//明天
echo strtotime('yesterday'),'<br>';//昨天
echo date('y-m-d H:i:s',1500854400),'<br>';
31、双apache不需要配置mysql,数据库用得2016。配置好2016的5.2信息后,全部关闭。在其他目录安装2014,修改apache(phpStudy设置=》端口常规设置httpd )端口为8000,站点域名设置里端口也要是8000,查看2014是否配置好,尤其是oppenssl是否开启,将三个文件,apache_servicefix.bat  apache_serviceinstall.bat   apache_serviceuninstall.bat  放到2014的apache目录下 (需要修改里面phpStudy路径)编辑apache_serviceinstall.bat,分别访问http://localhost/phpinfo.php和http://localhost:8000/phpinfo.php如果都能访问说明成功了,修改服务中Apache2014,将第一次失败改为重新启动服务
32、js删除不了,表机构问题。
33、复制表结构  create table go_zhang select * from go_zhang where 1=2
根据sid,title去重后保留id最小值
insert into go_ll select * from go_shoplist where  id in(select min(id) from go_shoplist group by sid) && id in(select min(id) from go_shoplist group by title);
34、数据库优化
35、上传苹果市场,充值栏目的替换,
 app/mobile/xmdb_column    测试,admin/setting/banben/5.5.0
36、索引利用二叉树,二分查找原理,二分查找必须是有序表。索引一般用在where,order by ,group by 字段。查询字段不添加索引。
function binsearch($x,$a){
$c=count($a);
$lower=0;
$high=$c-1;
while($lower<=$high){
$middle=intval(($lower+$high)/2);
if($a[$middle]>$x)
$high=$middle-1;
elseif($a[$middle]<$x)
$lower=$middle+1;
else
return $middle;
}
return -1;
}
建立普通索引 :ALTER TABLE user ADD INDEX index_name ( name)
建立主键索引:ALTER TABLE user ADD PRIMARY KEY ( id)
建立唯一索引:ALTER TABLE user ADD UNIQUE ( createtime)
建立全文索引:ALTER TABLE user ADD FULLTEXT ( name)
添加多列索引:ALTER TABLE user ADD INDEX index_name ( name, pwd, createtime)

聚集索引(字典中a-z),非聚集索引(字典中偏旁部首的排序,文字的具体页数,另有存储)
 

1、跨服务器复制表中数据
insert into openrowset('sqloledb','localhost';'sa';'123',Test.dbo.Table_B)
select * from Test.dbo.Table_A
 
//启用Ad Hoc Distributed Queries:
 
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
 
//使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

 

如何将一个mysql数据库中的一个表导入到另一个mysql数据库中

db1为原数据库,db2为要导出到的数据库,fromtable 是要导出的表名

1.方法一:
  登录导出到的数据库,执行
  create table fromtable select * from db1.fromtable;
2.方法二:
  在cmd下执行,mysqldump -u root -p db1 fromtable file=d:/fromtable.sql; 输入秘密,root为用户名
  登录db2 执行 source d:/fromtable.sql;
3.方法三:
  登录db1 执行 select * from fromtable into outfile "d:/fromtable .txt"; 导出纯数据格式
  登录db2 执行 load   data   infile   d:/fromtable .txt   into   table   fromtable; 需要先建一张和原表结构一样的空表。
4.建一个odbc连接,先导出到access中,再导出到另一个库中。

37、获取执行一条sql语句的时间及日志的生成 
$t1 = microtime(true);
$t2 = microtime(true);
$c = round($t2-$t1,3);
file_put_contents('zhang.txt',$c);
38、跳出本次循环  continue
39、warining :foreach
if(!$arr){
foreach($arr $k=>$v){
}
}
40、select * from go_zhang limit 1 \G;
41、查询表的详细说明:show table status like ‘tablename’;
42、curl用法:
$url = "http://ssc.buguyuan.cn/?/go/index/get_caipiao";
  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT,10);
  $ssc = curl_exec($ch);
  curl_close($ch);
  $ssc=json_decode($ssc,TRUE);
43、正则引用替换
$data = preg_replace('/^(\d{8})(\d{3})$/','$1-$2',$ssc['expect']);
将20170721048 替换为20170721-048
44、将时间转化为时间戳
45、header导出excel文件
Header( "Content-type:application/vnd.ms-excel ;charset=utf-8");//自己写编码  
Header( "Content-Disposition:attachment;filename=abnormal_Report.xls "); //名字
46、创建用户并同时创建数据库是要分与其指定的权限,才可以运行。
47、htmlspecialchars
48、file_put_contents('zhang.txt', $sq2.PHP_EOL, FILE_APPEND);
换行加追加。
49、<script type="text/javascript">
function submitFun(act)
{
myForm.action.value = act;
myForm.submit();
}
</script>
<form name="myForm">
<input type="hidden" name="action" value="edit">
<input type="button" name="editBtn" value="修改" onclick="submitFun('edit');">
<input type="button" name="delBtn" value="删除" onclick="submitFun('del');">
</form>
50、alter table go_check_spellshop add refuse_cause varchar(255) null comment '商品被拒原因';
51、
<script>
          function text(){
           var obj=document.createElement("input");
           obj.value="1";
           document.body.appendChild(obj);
            }
 </script>
<a href="javascript:text()">add</a>
52、图片用序列化存储
53、单选钮被选中:checked='checked'
54、去掉字符串右侧;
$a=rtrim($a,';');
55、value=value.replace(/\D/g,'')
除数字以外的其他字符换为空
56、delete from table where

     $guige_array = array();
     foreach ($guige as $k => $v) {
      $guige_array[$k]=$v['content'];
     }
     $guige_array = implode('、',$guige_array);
57、system/config/global.php
define("SUFF_NAME","夺宝");
58、选择shift
到行首 Home  到行末End
59、文件上传
<?php
if($_POST['submit']){
if(file_exists($_FILES['thumb']['name'])){
 echo '1111';
}else{
 $a =  move_uploaded_file( $_FILES["thumb"]["tmp_name"],"upload/1.jpg");
 var_dump($a);
      }
}
?>
<html>
<form action='' method='post' enctype='multipart/form-data'>
<input type='file' name='thumb'/>
<input type='submit' name='submit' value='提交'/>
</form>
</html>
60、ctrl+X 抓包工具的清除
61、 {wc:php:start}
                            $jiexiao = get_shop_if_jiexiao($record['shopid']);
                            {wc:php:end}
62、D:\Web\yg\lianbao\system\libs\application.class.php:
   18    // 将 D:\Web\db1h\system\config\param.inc.php 中的内容以数组形式打印出来
   19    
   20:   define('ROUTE_M', $this->param->route_m());
   21    // var_dump(ROUTE_M);die;  string(2) "go"
   22:   define('ROUTE_C', $this->param->route_c());
   23    // var_dump(ROUTE_C);die;  string(5) "index"
   24:   define('ROUTE_A', $this->param->route_a());
   25    // var_dump(ROUTE_A);die;  string(4) "init"
   26    $_cfg['route_m'] = ROUTE_M;
   ..
63、修改字段默认值,先删除
alter table go_check_spellshop alter column stock drop default; (若本身存在默认值,则先删除)
alter table go_check_spellshop alter column stock set default 1000000;(若本身不存在则可以直接设定)
64、 <td class="col3">{wc:fun:date("Y-m-d H:i",$rt['time'])}</td>
65、
echo __FILE__;                                //D:\phpStudy\WWW\js.php
echo dirname(__FILE__)                 //D:\phpStudy\WWW   //dirname(__FILE__);得到的是文件所在层目录名
echo DIRECTORY_SEPARATOR     //   \
66、后台左侧栏目  admin/init
67、
    zhiTd.innerHTML = '<input id="'+ zhiId +'" type="text" name="zhi[]" width="190px" onBlur="panduan(this)"/>';

        function panduan(obj){
            var a = obj.value.split('、');
            if(a.length>10){
                 alert('规格值不符合上传规则!');
            }
            for(var i=0;a.length;i++){
                if(a[i].length>10){
                    alert('规格值输入不符合上传规则!');
                }
            }
68、枚举类型字段修改要加单引号
69、根据复选框选择与否判断div是否隐藏
<script type="text/javascript">
 window.onload = function(){
        document.getElementById("is_shengji").onclick = function(){
            var dj_price = document.getElementById("dj_price");
            if(this.checked){
                dj_price.style.display ="none";
            }
            else{
                dj_price.style.display = "";
            }
        }
     }
 </script>
70、导出
<?php
$array = [['name'=>'张燕茹','sex'=>'女','age'=>'20','add'=>'河北'],
 ['name'=>'李路路','sex'=>'男','age'=>'21','add'=>'湖南'],
 ['name'=>'孙婷','sex'=>'女','age'=>'20','add'=>'北京'],
 ['name'=>'傻蛋','sex'=>'女','age'=>'20','add'=>'河北'],];
 

header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=zhang.xls");
 
echo "<table border='1px'>";
echo "<tr>";
echo "<td>". '姓名' . "</td>";
/* 红包序列号, 红包金额, 类型名称(红包名称), 使用结束日期 */
echo "<td>". '性别' . "</td>";
echo "<td>".'年龄' . "</td>";
echo "<td>".'地址' . "</td>";
   
  //$code_table = array();
     foreach ($array as $key => $val)
     {
      echo "<tr>";
         echo "<td>". $val['name'] . "</td>";
         echo "<td>".  $val['sex'] . "</td>";
         echo "<td>".  $val['age']. "</td>";
         echo "<td>".  $val['add']. "</td>";
         echo "</tr>";
     }
      echo "</table>";
      
?>
71、
get_magic_quotes_gpc()函数检测
当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1
当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc()就会返回0
 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串
预定义字符时:单引号‘
        双引号“
        反斜杠\
stripslashes()函数删除由addslashes()函数添加的反斜杠
这些所谓有特殊的符号包括:
1、'也就是间引号。
2、"也就是双引号。
3、$如果在双引号内,它就算是特殊字符,比如echo "$aa";不会输出$aa的值,输出的是$aa。在单引号里它不算特殊字符。
4、\n表示一个换行,在windows下看起来和回车一样的,linux等其他系统则不是,一般上windows下按回车键的值等于\r\n,就是回车+换行,而linux只是换行,就是\n。
5、\r表示回车。
6、\t表示水平制表符,就是键盘上的Tab那个按键。
7、\\表示一个\。
72、导出数据库
http://www.cnblogs.com/chenmh/p/5300370.html
在想导出的目录
》mysqldump -uroot -p lianbao > lianbao.sql
》root
导出表
》mysqldump -uroot -p lianbao go_member > lianbao.sql
》root
导出带条件表
》mysqldump -uroot -p lianbao go_member --where='id=1' > member.sql
》root
73、text-decoration:line-through;
74、array_values 将关联数组转化为索引数组
75、array_slice(array,start,length,preserve)  第四个参数 是否重置键名
76、table-layout: automatic   在设置了宽度的时候 在内容超过宽度设定时,宽度随文字内容自适应,不超过宽度生效。
        table-layout: fixed:强制宽度起作用
77、sql防注入
若是用户名为   admin or 1=1  关键字起作用
"select * from user where name=$name and  password=$pwd";
若是占位符
$name = :username   :username=>'admin or 1=1'
占位符内内容强制转化为字符串或者数字  or  关键字不会被解析

posted @ 2017-09-28 17:18  肖张  阅读(179)  评论(0编辑  收藏  举报