$fp = fopen(“lock.txt”,”w+”); if(flock($fp, LOCK_EX)) { // 写锁 fwrite($fp, “write something”); flock($fp, LOCK_UN); // 解锁 } else { echo “file is locking”; } fclose($fp);
Leave a Comment标签: PHP
\S 匹配任何非空白字符。i 不区分大小写 $arr = array(“”,1,2,3,””); $ptn = “/\S+/i”; print_r(preg_grep($ptn,$arr));
Leave a Comment# $str是一段html文本 $pattern = ‘/<script.*>.*<\/script>/i’; preg_replace($pattern,”,$str);
Leave a Commentfunction getExt1 () { $url_path = “http://www.sina.com.cn/abc/de/fg.php?id=1”; $temp = pathinfo($url_path, PATHINFO_EXTENSION); // php?id=1 $temp = explode(“?”, $temp); echo $temp[0]; // php } function getExt2 () { $url_path = “http://www.sina.com.cn…
Leave a Commentfunction fileShow($dir){ $handle = opendir($dir); // 打开目录句柄 while ($file = readdir($handle)) { // 返回目录句柄中的条目 if ($file !== ‘..’ && $file !== ‘.’) { $f = $dir . ‘/’ . $file; if (is_file($f)) { echo ‘|–‘ . $file . ‘<br>’; // 代表文件 } else …
Leave a Comment工厂模式解决的是如何不通过 new 关键字建立实例对象的方法。 工厂模式是一种类,它具有为你创建对象的某些方法,你可以使用工厂类创建对象而不使用 new 关键字。这样,如果你想要更改所创建的对象类型只需要修改工厂类即可,使用该工厂类的所有代码会自动更改。 工厂模式往往配合接口一起使用,这样应用程序就不必要知道这些被实例化的类的具体细节,只要知道工厂类返回的是支持某个接口的类就可以方便的使用了。 简单代码实现如下: <?php /** * 工厂模式示例 */ /** * 定义一个人类抽象类接…
Leave a Comment当需要保证对象只有一个实例的时候,单例模式是非常有用的。它把创建对象的控制权交给一个单一的点上,任何时候应用程序都只会存在且仅存在一个实例。 单例类不应该能在类的外部进行实例化。 一个单例类应该具备以下几个因素: 必须拥有一个访问级别为 private 的构造函数,用于阻止类被随意实例化 必须拥有一个保存类的实例的静态变量 必须拥有一个访问这个实例的公共静态方法,该方法通常被命名为 getInstance() 必须拥有一个私有的空的 clone 方法,防止实例被克隆复制 单例模式简单实现如下: …
Leave a Comment一群猴子排成一圈,按 1,2,…,n 依次编号。然后从第 1 只开始数,数到第 m 只,把它踢出圈,从它后面再开始数,再数到第 m 只,再把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入 m、n , 输出最后那个大王的编号。用程序模拟该过程。 <?php /** * @param $n 猴子个数 * @param $m 第几个踢出圈 * @return 最终成为大王的猴子编号 */ function monkeyKing ($n, …
Leave a Comment$arr = [6, 5, 4, 1, 2, 3]; echo ‘原始数组元素:’ . implode(‘,’, $arr) . “<br />”; $sortedArr = bubble_sort($arr); echo ‘排序后的数组元素:’ . implode(‘,’, $sortedArr); function bubble_sort($array) { for ( $i = count($array) – 1; $i >= 1; $i– ) { $flag = FA…
Leave a Commentmain.php <?php $array = [4, 3, 14, 85, 34, 27, 91, 95, 26, 12, 32]; print_r($array); print_r(bubbleSort($array)); /** * 冒泡排序 * @author Kernel Xiao * @param array array 需要排序的数组 * @return array array 排序后的数组 */ function bubbleSort(array $array) :arra…
Leave a Comment