在工作中,经常用要用php读取文件,file函数必不可少。
但有时候会碰到很棘手的问题,比如下面的代码:
<?php define("UIDS_","uids_"); $allUidArr=array(); for($i=1;$i<10;$i++){ $uids_path='./'.UIDS_.$i; if(!file_exists($uids_path)){ break; } $uidArr=file($uids_path); $allUidArr=$allUidArr + array_fill_keys($uidArr,$i); } echo $allUidArr[$user->uid]; //$user 为一个用户对象 属性 uid
在这样的情况下,是得不到正确的value的,原因是$user->uid 是不含换行符的,而file之后得到的$uidArr 各元素结尾是含有换行符的,当然$allUidArr 里的key 结尾必然也是含有的,但为这个数组遍历一遍也太不值得了,那么该怎么办呢?
这里要说了,我大PHP甚是威武!!! 竟然有参数可以控制!!!
$uidArr=file($uids_path , FILE_IGNORE_NEW_LINES ) ;
只需要这样,元素结尾的换行符既被忽略!
而且,flags参数还可以同时设置多个:
问题解决!!