php flock函数实例

 更新时间:2016年11月25日 16:49  点击:1963
由于 flock() 需要一个文件指针, 因此可能不得不用一个特殊的锁定文件来保护打算通过写模式打开的文件的访问(在 fopen() 函数中加入 \\\"w\\\" 或 \\\"w+\\\")。

fp = fopen("test.txt", 'ab');              //from the end
flock($fp, lock_ex);                        //lock the file for waiting...
fwrite($fp, 'just a test string.......');   //start writing...
flock($fp, lock_un);                        //release write lock
fclose($fp);                                //close the file读操作:

//read
$fp = fopen("test.txt", 'r');
flock($fp, lock_sh);
//read from the file.......
flock($fp, lock_un);

<?php教程

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, lock_ex)) { // 进行排它型锁定
    fwrite($fp, "write something here ");
    flock($fp, lock_un); // 释放锁定
} else {
    echo "couldn't lock the file !";
}

fclose($fp);

?>
flock() 不能用于 nfs 以及其它一些网络文件系统。详细资料查看自己操作系统的文档。

在部分操作系统中 flock() 以进程级实现。当用一个多线程服务器 api(比如 isapi)时,可能不可以依靠 flock() 来保护文件,因为运行于同一服务器实例中其它并行线程的 php 脚本可以对该文件进行处理

本文章主要是介绍str_replace函数替换单个字符,与替换数据,以及指定str_replace替换的次数,最后一个替换次数是很有用的特别是在seo优化方法面哦。

/mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

个函数返回一个字符串或在出现问题的所有搜索给定的数组替换值替换。

如果你不喜欢需要更换的规则(如正则表达式),你应该始终使用此函数,而不是ereg_replace()或preg_replace函数()。
*/
// provides: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// provides: hll wrld f php
$vowels = array("a", "e", "i", "o", "u", "a", "e", "i", "o", "u");
$onlyconsonants = str_replace($vowels, "", "hello world of php");

// provides: you should eat pizza, beer, and ice cream every day
$phrase  = "you should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// provides: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;

//利用str_replace函数指定替换次数

$array = array(
 array(0,1,2)
 );
function keywords( $str,$array )
{
 $count =0;
 foreach($array as $v){     
  if(strstr($str,strtolower($v[0]))!==false){       
   if( $count <=3 ){
    $tos = strtolower($v[0]);
    $str=preg_replace("/$tos/","<a href=".$v[1]." target=_blank >".$v[2]."</a>",$str,1);
    $count++;
    continue;
   }
  }    
 }
 return $str;  
}

?>

addslashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
chop: 去除连续空白。
chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 des 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓冲区。
get_meta_tags: 抽出文件所有 meta 标记的资料。
htmlspecialchars: 将特殊字符转成 html 格式。
htmlentities: 将所有的字符都转成 html 字符串。
implode: 将数组变成字符串。
join: 将数组变成字符串。
ltrim: 去除连续空白。
md5: 计算字符串的 md5 哈稀。
nl2br: 将换行字符转成 <br>。
ord: 返回字符的序数值。
parse_str: 解析 query 字符串成变量。
print: 输出字符串。
printf: 输出格式化字符串。
quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
quotemeta: 加入引用符号。
rawurldecode: 从 url 专用格式字符串还原成普通字符串。
rawurlencode: 将字符串编码成 url 专用格式。
setlocale: 配置地域化信息。
similar_text: 计算字符串相似度。
soundex: 计算字符串的读音值
sprintf: 将字符串格式化。
strchr: 寻找第一个出现的字符。
strcmp: 字符串比较。
strcspn: 不同字符串的长度。
strip_tags: 去掉 html 及 php教程 的标记。
strips教程lashes: 去掉反斜线字符。
strlen: 取得字符串长度。
strrpos: 寻找字符串中某字符最后出现处。
strpos: 寻找字符串中某字符最先出现处。
strrchr: 取得某字符最后出现处起的字符串。
strrev: 颠倒字符串。
strspn: 找出某字符串落在另一字符串遮罩的数目。
strstr: 返回字符串中某字符串开始处至结束的字符串。
strtok: 切开字符串。
strtolower: 字符串全转为小写。
strtoupper: 字符串全转为大写。
str_replace: 字符串取代。
strtr: 转换某些字符。
substr: 取部份字符串。
trim: 截去字符串首尾的空格。
ucfirst: 将字符串第一个字符改大写。
ucwords: 将字符串每个字第一个字母改大写。


php语言中的字符串函数也是一个比较易懂的知识。今天我们就为大家总结了将近12种php字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的php知识库。
1查找字符位置函数:
int strpos(string $str, mixed search,[int]):查找search在$str中的第一次出现的位置(从int开始,忽略int之前的任何值);
int stripos(string $str,string search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感
strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int(从int开始,忽略int之前的任何值);

2、提取子字符函数(双字节)
submit($str,int start[,int length]):从$str中strat位置开始提取[length长度的字符串]。
strstr($str1,$str2):从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回false。
stristr() 功能同strstr,只是不区分大小写。
strrchr() 从最后一次搜索到的字符处返回;用处:取路径中文件名
3、替换字符串的php字符串函数
str_replace(search,replace,$str):从$str中查找search用replace来替换
str_irreplace(search,replace,$str):
strtr($str,search,replace):这个函数中replace不能为"";
substr_replace($str,$rep,$start[,length])$str原始字符串,$rep替换后的新
字符串,$start起始位置,$length替换的长度,该项可选
4、字符长度
int strlen($str)
5、比较字符函数
int strcmp($str1,$str2):$str1>=<$str2分别为正1,0,-1(字符串比较)
strcasecmp() 同上(不分大小写)
strnatcmp("4","14") 按自然排序比较字符串
strnatcasecmp() 同上,(区分大小写)
6、分割成数组的php字符串函数
str_split($str,len):把$str按len长度进行分割返回数组
split(search,$str[,int]):把$str按search字符进行分割返回数组int是分割几次,后面的将不分割
expload(search,$str[,int])
7、去除空格:
ltrim、rtrim、trim
8、加空格函数
chunk_split($str,2);向$str字符里面按2个字符就加入一个空格;
9、chr、ord--返回指定的字符或ascii
10、html代码有关函数
nl2br():使n转换为<br>。
strip_tags($str[,'<p>']):去除html和php标记
在$str中所有html和php代码将被去除,可选参数为html和php代码作用是将保留
可选参数所写的代码。
如:echo strip_tags($text, '<br><p>');

htmlspecialchars($str[,参数]):页面正常输出html代码参数是转换方式
11、字符大小写转换的php字符串函数
strtolower($str) 字符串转换为小写
strtoupper($str) 字符串转换为大写
ucfirst($str) 将函数的第一个字符转换为大写
ucwords($str) 将每个单词的首字母转换为大写
12、数据库教程相关的php字符串函数
addslashes($str):使str内单引号(')、双引号(")、反斜线()与 nul
字符串转换为',",\。
magic_quotes_gpc = on 自动对 get post cookie的内容进行转义
get_magic_quotes_gpc()检测是否打开magic_quotes_gpc
stripslashes() 去除字符串中的反斜杠

分隔字符串,使用“str_split”就可以了好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。 也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,

php教程 explode() 函数
php string 函数
定义和用法
explode() 函数把字符串分割为数组。

语法
explode(separator,string,limit)参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的最大数目。

例子
在本例中,我们将把字符串分割为数组:

 代码如下 复制代码
<?php
$str = "hello world. it's a beautiful day.";
print_r (explode(" ",$str));
?>

输出:

 代码如下 复制代码
array
(
[0] => hello
[1] => world.
[2] => it's
[3] => a
[4] => beautiful
[5] => day.
)

str_split 拆分函数

定义和用法
str_split() 函数把字符串分割到数组中。

语法
str_split(string,length)参数 描述
string 必需。规定要分割的字符串。
length 可选。规定每个数组元素的长度。默认是 1。

说明
如果 length 小于 1,str_split() 函数将返回 false。

如果 length 大于字符串的长度,整个字符串将作为数组的唯一元素返回。
例子
例子 1

 代码如下 复制代码
<?php
print_r(str_split("hello"));
?>

输出:

 代码如下 复制代码
array
(
[0] => h
[1] => e
[2] => l
[3] => l
[4] => o
)

例子 2

 代码如下 复制代码
<?php
print_r(str_split("hello",3));
?>

输出:

 代码如下 复制代码
array
(
[0] => hel
[1]


preg_split -- 用正则表达式分割字符串
说明
array preg_split ( string pattern, string subject [, int limit [, int flags]])


返回一个数组,包含 subject 中沿着与 pattern 匹配的边界所分割的子串。

如果指定了 limit,则最多返回 limit 个子串,如果 limit 是 -1,则意味着没有限制,可以用来继续指定可选参数 flags。

flags 可以是下列标记的任意组合(用按位或运算符 | 组合):


preg_split_no_empty
如果设定了本标记,则 preg_split() 只返回非空的成分。

比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical”类型也要求一样;后者要求“equal”,值相同就可以了,参考【1】。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在那里不同。我的思路是单字符串分割为一个个字母(character),这样比较就能精确知道在那个位置不同了。分隔字符串,使用“str_split”就可以了,语法参考【2】。然后输出结果数组,好处是连空格也会作为数组的元素。我之前的例子就是因为前一个字符串包含2个空格,而后一个只有一个。但是输出的时候看到的显示都是一样的。 也可以按照其他分隔符进行分割,如“explode”或者“preg_split”,

  一般能用 !=, == 比较两个对象是否相等,只所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如

 代码如下 复制代码

$a = "joe";
$b = "jerry";
if ($a != $b)
{
    echo "不相等";
}
else
{
    echo "相等";
}

  如果用 !==,===(能看到多了一个等号)比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较.

 代码如下 复制代码
22 == "22"; // 返回 true
22 === "22"; // 返回false

  正因为这样,所以我们的程式时常会发生一些想不到的“意外”:

0 == "我爱你"; // 返回true
1 == "1 我爱你";// 返回true

  php教程里更有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),他们都是如果前者比后者大,则返回大于0的整数;如果前者比后者小,则返回小于0的整数;如果两者相等,则返回0.他们比较的原理和其他语言的规则都是相同的。

strcmp是用于区分大小写(即大小写敏感)的字符串比较:
echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比较的是 "b"和"b"

strcasecmp用于不区分大小写的字符串比较:
echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比较的是"d"和"e"

strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比较了 abc 和 abc

strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比较了 abc 和 abc, 由于不区分大小写,所以两者是相同的。

  更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp:

echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0)
echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)

[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • PHP加密解密函数详解

    分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
  • php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法

    最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的...2015-10-21
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#虚函数用法实例分析

    这篇文章主要介绍了C#虚函数用法,实例分析了C#中虚函数的功能与基本使用技巧,需要的朋友可以参考下...2020-06-25
  • PHP编码转换函数mb_convert_encoding与iconv用法

    文章来实现一个PHP编码转换函数mb_convert_encoding与iconv用法,希望例子能帮助到各位。 将一个短信接口代码从apache迁移到nginx+php-fpm后,发现无法发出短信了,查...2016-11-25