如题所示。。。木有做大规模的运算,还不知道。。。擦,PHP的Math函数运算原来是如此之慢的。。。大家还是麻烦点,手写多几句算鸟~~~
小二!上代码。。。。
代码如下 | 复制代码 |
$start = microtime(TRUE); for ($i=0; $i < 200000; $i++) { $s = 0; for ($j=0; $j < 3; $j++) { $s += ($j+$i+1) * ($j+$i+1); } } echo microtime(TRUE) – $start; # output: 0.33167719841003 |
再对比下用Math函数的代码和结果
代码如下 | 复制代码 |
$start = microtime(TRUE); for ($i=0; $i < 200000; $i++) { $s = 0; for ($j=0; $j < 3; $j++) { $s += pow($j+$i+1, 2); } } echo microtime(TRUE) – $start; # output: 0.87528896331787 |
看到木有,效率提升100%丫。。。以前还一直都认为是PHP内置的Math快,真是不测不知道。。像取绝对值abs,最大值max,最小值min 等 效率都不如原生的 if判断来得快~~
总的来说,php运算的确是很慢~~ 真心不适合做大规模的算法运算~~
在php中str_ireplace()str_replace函数就是字符替换了,我觉得他们最大的区别就是一个对大小写不敏感,一个对大小写敏感其它的都一样。str_replace() 函数
定义:使用一个字符串替换字符串中的另一些字符,对大小写敏感的搜索
语法:
str_replace(find,replace,string,count)
实例:
代码如下 | 复制代码 |
<?php echo str_replace("seo","hupeng","seo studying SEO");?> |
输出hupeng studying
str_ireplace() 函数
定义:使用一个字符串替换字符串中的另一些字符,对大小写不敏感的搜索
语法:str_ireplace(find,replace,string,count)
实例:
代码如下 | 复制代码 |
<?php echo str_ireplace("seo","hupeng","www.111cn.net SEO");?> |
输出
hupengstudying.com hupeng
通过上面的描述和实例对比,相信大家都很清楚的了解了php中str_replace() 函数与str_ireplace() 函数的区别
str_replace使用
大家可以实际运行下下面的代码,调试一下。<?php
代码如下 | 复制代码 |
// Provides: <body text='black'> // Provides: Hll Wrld f PHP // Provides: You should eat pizza, beer, and ice cream every day $newphrase = str_replace($healthy, $yummy, $phrase); // Use of the count parameter is available as of PHP 5.0.0 |
str_replace详解
在都不使用数组时,该函数直接使用replace替换所有的search并返回替换后的字符串。如:str_replace("m","n","my name is jim!")返回ny nane is jin!
1、只对search使用数组。
示例:str_replace(array('m','i'),'n',"my name is jim!");返回:ny nane ns jnn!
可以看出,函数顺序性的对数组中每个字符串进行替换,并返回替换后的字符串。
2、只对replace使用数组。
示例:str_replace('m',array('n','z'),"my name is jim!n")返回:Arrayy naArraye is jiArray!
该替换比较有意思,如果只对第二个参数使用数组则函数将其作为字符串Array进行使用,将所有的search替换为了数组。
3、只对subject使用数组。
示例:str_replace("m","n",array("my name is jim!","the game is over!"))该语句执行结果返回一个数组,即分别为传入的两个字符串替换后的结果。
如果输出数组内容会看到:ny nane is jin! the gane is over!
4、对search和replace都使用数组。
示例:str_replace(array("m","i"),array("n","z"),"my name is jim!")返回:ny nane zs jzn!
查看执行结果可以发现,如果前两个参数都使用数组则函数把数组各个对象项字符串进行了替换,及search的第一项替换为replace的第一项。以此类推。
如果search数组比new_deedle长,例如:str_replace(array("m","i","s"),array("n","z"), "my name is jim!");返回:ny nane z jzn!可见,对于search数组多出来的字符串被替换为了空串。
如果replace数组比search长,例如:str_replace(array("m","i"),array("n","z","x"), "my name is jim!")返回ny nane zs jzn!可见replace多余的项被忽略。
5、三个参数都使用数组。
例如:str_replace(array("m","i"),array("n","z"),array("my name is jim!","the game is over"))返回的数组内容:ny nane zs jzn!the gane zs over
这个比较好理解,对两个字符串分别执行替换。
str_replace出现乱码原因分析
乱码问题是汉字编码和str_replace的工作方引起的,因为一个汉字是占两个字节的,全角空格也相当于汉字一样占两个字节,一个区码,一个位码。不过位码和区码有重叠的部分。如以下代码:
代码如下 | 复制代码 |
<?php $str = "汀。"; |
以上代码的输出结果是 "停" 字。因为str_replace是一个字节一个字节的对比,所以会出错
php有很多方法可以获取远程文件大小的哦,最常用的就有fsockopen、file_get_contents、curl函数哦,下面我来给各位总结一下。1、fsockopen
代码如下 | 复制代码 |
<?php |
2、使用file_get_contents()
代码如下 | 复制代码 |
<?php |
3. 使用get_headers()
代码如下 | 复制代码 |
<?php //返回结果
|
4.curl
代码如下 | 复制代码 |
function remote_filesize($uri,$user='',$pw='') |
例子 1
代码如下 | 复制代码 |
<?php echo fileperms("test.txt"); ?> |
输出:
33206
例子2
代码如下 | 复制代码 |
/* |
打开文件
fopen 最简单语法如下:
fopen(filepath,mode)
下面是打开一个文件的 PHP 代码示例:
代码如下 | 复制代码 |
<?php $f = fopen("c:\data\info.txt", "r"); ?> |
其中,c:\data\info.txt 是文件路径,r 表示打开文件的模式(mode) 为只读 (read only) 模式。
讲述使用 PHP 内置函数 fclose 关闭一个文件。
fclose 函数语法如下:
fclose(filepointer)
如果成功,fclose 函数返回 TRUE,如果失败,fclose 函数返回 FALSE。
下面是一个 fclose 函数的 PHP 代码示例:
代码如下 | 复制代码 |
<?php $f = fopen("c:\data\info.txt", "r"); |
fwrite 写入文件
fwrite 函数。
PHP 内置函数 fwrite 用于写入文件。
fwrite 函数的常用语法为:
fwrite(handle,string)
其中,参数 handle 表示文件指针资源 (通常由 fopen 函数创建),string 表示要写入的内容。
下面一个PHP 代码示例演示如何创建一个新文件,并写入内容,然后保存并关闭文件:
代码如下 | 复制代码 |
<html> |
执行该 PHP 文件后,会创建一个路径为 C:blablaphpwrite.txt 的文件,文件的内容是It is awesome.。
如果你想在现有文件上再追加内容,你只要修改 fopen 的 参数 mode 值即可,如下:
代码如下 | 复制代码 |
$f= fopen("C:\blabla\php\write.txt","a"); |
有关 fopen 函数的参数 mode 值,详见 fopen。
fwrite 函数返回写入文件的字节数 (number of bytes) ,如果出错,返回 FALSE。
fgets 读取文件一行内容
用 PHP 内置函数 fgets 可以读取文件的一行内容。
fgets读取文件一行内容的语法是:
fgets(filepointer)
下面我们举个例子讲述如何一行行读取一个文件。
假设我们有一个 sites.txt 文件,该文件有三行,内容如下:
woyouxian.comblabla.cngoogle.com
sites.txt 的文件路径是:
C:blablaphpsites.txt
我们用 PHP 一行行读取文件内容,PHP代码如下:
代码如下 | 复制代码 |
<html><body><?php $f= fopen("C:\blabla\php\sites.txt","r"); while (!feof($f)) { $line = fgets($f); echo "site: ",$line,"<br />"; }fclose($f); ?> </body></html> |
执行该 PHP 文件,返回的显示结果是:
site: woyouxian.comsite: blabla.cnsite: google.com
该 PHP 代码的第一行是打开文件,最后一行是关闭一个文件。当中的 while 循环语句表示,当文件没有结束,就读取一行,循环执行,直到文件指针到文章末尾为止。
feof 函数是PHP 的一个内置函数,用来测试文件指针是否已经到了文件末尾。如果是返回 TRUE,如果不是,返回 FALSE。eof 的英文意思就是 end of file,很容易记。
正常情况下,fgets 函数的返回值是一个字符串,如果出错,返回 FALSE