写一段PHP代码,确保多个进程同时写入同一个文件成功
$fp = fopen('slq.sql',"r+"); $time = time(); $wait_time = 0; while (!flock($fp,LOCK_EX)){ //获取独占锁,写入程序 return bool sleep(10); $wait_time = time(); if($wait_time-$time>60){ break; } } fwrite($fp,"xxxxx") flock($fp,LOCK_UN);//释放锁 fclose($fp);
无限极递归
//无限极分类 $arr = array( ['value' => 1, 'parent_id' => 0, 'id' => 1], ['value' => 2, 'parent_id' => 3, 'id' => 2], ['value' => 3, 'parent_id' => 0, 'id' => 3], ['value' => 4, 'parent_id' => 3, 'id' => 4], ['value' => 5, 'parent_id' => 1, 'id' => 5], ); function notLimit($arr, $parent_id = 0, $level = 1) { static $new_arr = []; foreach ($arr as $k => $v) { if ($parent_id == $v['parent_id']) { $add['level'] = $level; $add['value'] = $v['value']; $add['id'] = $v['id']; $new_arr[] = $add; notLimit($arr, $v['id'], $level + 2); } } return $new_arr; } var_dump(notLimit($arr));
有一个网页地址,比如PHP开发资源网主页:http://www.phpres.com/index.html,如何得到它的内容
echo file_get_contents("http://www.baidu.com"); $readcontents=fopen("http://www.baidu.com","r+"); $contents=stream_get_contents($readcontents); fclose($readcontents); echo $contents;
在HTML语言中,页面头部的meta标记可以用来输出文件的编码格式,以下是一个标准的meta语句<META http-equiv='Content-Type'content='text/html;charset=gbk'>
,请使用PHP语言写一个函数,把一个标准HTML页面���的类似meta标记中的charset部分值改为big5。(新浪)
请注意:
(1)需要处理完整的html页面,即不光此meta语句
(2)忽略大小写
(3)'和"在此处是可以互换的
(4)'Content-Type'两侧的引号是可以忽略的,但'text/html;charset=gbk'两侧的不行
(5)注意处理多余空格
编写正则表达式如下:$reg1="/(<meta\s*http-equiv\s*=\s*(['"]?)Content-Type(\2)\s*content\s*=\s*(['"])text/html;charset=)(UTF-8)(\4)(\s*/?>)/i";
PHP中如何判断一个字符串是否是合法的日期模式:2007-03-13 13:13:13。要求代码不超过5行。
function is_ture_form($time){ if(date('Y-m-d H:i:s',strtotime($time)) == $time){ echo '合法'; }else{ echo '不合法'; } } $time = '2014-01-02 10:02:20'; $time2= '2014-01-02 10:02:20'; is_ture_form($time2); is_ture_form($time); echo date('Y-m-d H:i:s',strtotime($time)) == $time ?'合法':'不合法';
PHP中,如何获得一个数组的键值?(酷讯)
使用key()可以获得数组中当前元素的键名,使用current()则可以返回当前元素的值。
使用array_keys()则可以得到数组中所有的键名,只能获取一维数组的键值,不能获取二维数组的键值。
使用foreach结构foreach($arr as key=>value)可以通过key和value分别获取键名和值。
如果模板是用smarty模板。怎样用section语句来显示一个名为$data的组
$data=array( 0=>array('id'=>8,'name'=>'name1'), 1=>array('id'=>10,'name'=>'name2'), 2=>array('id'=>15,'name'=>'name3') ); <{section name=test loop=$data start=0 step=1}> id:<{$data[test].id}><br/> name:<{$data[test].name}><br/><br/> <{sectionelse}> 数组为空 <{/section}> <{foreach from=$data item=test}> id:<{$test.id}><br/> name:<{$test.name}><br/><br/> <{foreachelse}> 数组为空 <{/foreach}>
哪个选项会匹配下边的这个正则表达式?(/.**xyzd/)
A.******xyz
B.*****_xyz1
C.******xyz2
D._*xyz
答案:C