Skip to content

Latest commit

 

History

History
148 lines (120 loc) · 3.7 KB

Q11-15.md

File metadata and controls

148 lines (120 loc) · 3.7 KB

Q11-15

标签(空格分隔): Driphp


##NO.11发一个随机红包,100块钱给10个人。每个人最多12块钱,最少6块钱。怎么分?

<?php

$total_money=100;

//定义10个人,每人初始拥有0元钱
$pepole=['p1'=>'','p2'=>'','p3'=>'','p4'=>'','p5'=>'','p6'=>'','p7'=>'','p8'=>'','p9'=>'','p10'=>''];

//每个人分配6元钱

foreach ($pepole as $key => $value) {

    $people[$key]=6;

}

$total_money=$total_money-count($people)*6;

//每个人随机分钱,每次分1块

while($total_money>0){

    $rand=mt_rand(1,10);

    if($people["p{$rand}"]<12){

        $people["p{$rand}"]+=1;

        $total_money-=1;

    }

}
print_r($people);

##NO.12 在PHP的开发环境下,如何保证从头到尾都是UTF-8格式 ####1、Mysql字符集设置:

  • 设置Mysql数据库、数据表、字段的字符集编码都为utf8格式。
  • 设置数据库字符集编码
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8
  • 设置数据表字符集编码
ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8
  • 设置字段字符集编码
ALTER TABLE tbl_name CHANGE column_name column_name CHARACTER SET utf8

附录

查看数据库字符集:SHOW CREATE DATABASE db_name;   
查看数据表字符集:SHOW CREATE TABLE tbl_name;   
查看字段编码:SHOW FULL COLUMNS FROM tbl_name; 

####2、连接数据库 使用PDO连接

$dbh = new PDO('mysql:charset=utf8');

使用mysqli连接

$mysqli->set_charset('utf8');  

使用mysql_connect连接.

SET NAMES 'utf8'

####3、php.ini中设置

default_charset=utf-8

决定的浏览器的默认编码格式,与header('Content-Type: text/html; charset=utf-8');效果一样 ##NO.13 如何获取文件扩展(后缀)名?

问题描述

获取文件后缀名,是一个很实用,又有很多种解法的问题。 如:获取 /testweb/test.txt 的扩展名

解决办法

PHP中有一个函数:pathinfo(),可以获取文件的路径信息

<?php
$file='/testweb/test.txt';
print_r(pathinfo($file));

上面的代码输出

Array
(
    [dirname] => /testweb
    [basename] => test.txt
    [extension] => txt
    [filename] => test
)

其中,extension就是文件的扩展名。 获取文件的扩展名,需要下面代码:

<?php
$file='/testweb/test.txt';
$path=pathinfo($file);
$extension=$path['extension'];//txt

或者,下面的代码

<?php
$file='/testweb/test.txt';
$extension=pathinfo($file,PATHINFO_EXTENSION);//txt

##NO.14 如何将xml转换成数组 ###问题描述 有时候,我们需要将xml转变成数组,以方便我们操作。比如接入微信支付的时候,微信返回给我们的就是xml数据,我们需要拿到xml,将xml转成数组。 ###解决办法

//禁止引用外部xml实体 
libxml_disable_entity_loader(true); 
//将xml载入对象中(转变成object)
$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); 
//将object转变成json,再json_decode转变成数组
$arr = json_decode(json_encode($xmlstring),true); 

##NO.15 如何获取客户端的ip地址与MAC地址 ###解决办法

  • 获取ip地址:可以通过变量$_SERVER['REMOTE_ADDR']获取。
  • 获取mac地址:不可能。

###问题讨论:为什么能够获取ip地址,不能获取mac地址呢?

客户端访问服务器,是通过http协议访问的。 http协议的header信息中,包含了客户端的ip地址,也就是ip地址带给了服务器,那么服务器就可以获取客户端ip地址。 WechatIMG47.jpeg-78.4kB

对于MAC地址,http协议是不会发送给服务端的,那么,服务端就无法获取。