标签(空格分隔): 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地址。
对于MAC地址,http协议是不会发送给服务端的,那么,服务端就无法获取。