程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 對PHP采集數據提取核心函數的速度的測試與分析

對PHP采集數據提取核心函數的速度的測試與分析

編輯:關於PHP編程

對PHP采集數據提取核心函數的速度的測試與分析
由於程序需要,於是對PHP采集中的字符提取的核心部分進行了執行速度的測試。
測試了三種最常見的提取辦法:
方法一:
<?php
require "class.debug.php";
function getContent ( $sourceStr )
{
$content = strstr( $sourceStr, '形' );
$content = substr( $content, 0, strrpos( $content, '言' ) + strlen( '言' ) );
return $content;
}
$sourceStr = '拒絕任何人以任何形式在本論壇發表與中華人民共和國法律相抵觸的言論';
$debug = new Debug;
$debug->startTimer();
for( $i = 0; $i < 1000000; $i++ )
{
$returnStr = getContent( $sourceStr );
}
$timeInfo = $debug->endTimer();
echo $timeInfo;
?>
通過比較低級的字符操作函數進行提取.
方法二:
<?php
require "class.debug.php";
function getContent ( $sourceStr )
{
$pattern = "/形(.*?)言/is";
preg_match_all( $pattern, $sourceStr, $result );
return $result[1][0];
}
$sourceStr = '拒絕任何人以任何形式在本論壇發表與中華人民共和國法律相抵觸的言論';
$debug = new Debug;
$debug->startTimer();
for( $i = 0; $i < 1000000; $i++ )
{
$returnStr = getContent( $sourceStr );
}
$timeInfo = $debug->endTimer();
echo $timeInfo;
?>
使用一個簡單的正則來提取.
方法三:
<?php
require "class.debug.php";
function getContent ( $sourceStr )
{
$content = explode( '形', $sourceStr );
$content = explode( '言', $content[1] );
return $content[0];
}
$sourceStr = '拒絕任何人以任何形式在本論壇發表與中華人民共和國法律相抵觸的言論';
$debug = new Debug;
$debug->startTimer();
for( $i = 0; $i < 1000000; $i++ )
{
$returnStr = getContent( $sourceStr );
}
$timeInfo = $debug->endTimer();
echo $timeInfo;
?>
通過兩次explode分裂字符串來提取.
測試前我的觀點是: 1 > 2 > 3

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved