curl post与get实例代码。
<?php
/**
* curl get post示例
* site http://www.
*/
function curl_post_contents($url, $data = array(), $cookiepath = '',$timeout=10){
$userAgent = 'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)';
$referer = $url;
if(!is_array($data) || !$url) return '';
$post = '';
foreach($data as $key => $value){
$post .= $key . '=' . urlencode($value) . '&';
}
rtrim($post, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); //设置超时
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); //用户访问代理 User-Agent
curl_setopt($ch, CURLOPT_REFERER, $referer); //设置 referer
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); //跟踪301
curl_setopt($ch, CURLOPT_POST, 1); //指定post数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //添加变量
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiepath); //COOKIE的存储路径,返回时保存COOKIE的路径
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回结果
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
function curl_get_contents($url, $timeout = 5)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, true);
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 86400); // 缓存一天
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
?>
使用memcache保存sesion,在读写速度上会比files方式快很多,也便于多服务器的session共享,将这些服务器都配置成使用同一组memcached服务器即可。
不过,这种方法也有缺点:由于session数据以内存方式保存,如果当机或重启,session将全部丢失。
<?php
/**
@session保存进memcache
@site http://www.
*/
class MS{
static $mem;
static $maxtime;
function __construct($mem){
self::$mem = $mem;
self::$maxtime = ini_get('session.gc_maxlifetime');
session_module_name('user');//session文件保存方式,这个是必须的!除非在Php.ini文件中设置了
session_set_save_handler(
array(__CLASS__,'open'),//在运行session_start()时执行
array(__CLASS__,'close'),//在脚本执行完成或调用session_write_close() 或 session_destroy()时被执行,即在所有session操作完后被执行
array(__CLASS__,'read'),//在运行session_start()时执行,因为在session_start时,会去read当前session数据
array(__CLASS__,'write'),//此方法在脚本结束和使用session_write_close()强制提交SESSION数据时执行
array(__CLASS__,'destroy'),//在运行session_destroy()时执行
array(__CLASS__,'gc')//执行概率由session.gc_probability 和 session.gc_divisor的值决定,时机是在open,read之后,session_start会相继执行open,read和gc
);
session_start();//这也是必须的,打开session,必须在session_set_save_handler后面执行
}
static function open($sid){
return true;
}
static function close(){
return true;
}
static function read($sid){
return self::$mem->get($sid);
}
function write($sid,$data){
return self::$mem->set($sid,$data,MEMCACHE_COMPRESSED,self::$maxtime);
}
function destroy($sid){
return self::$mem->delete($sid);
}
function gc($maxtime){
return true;
}
}
//调用示例
$mem=new Memcache();
$mem->connect('127.0.0.1', '11211');
$session=new MS($mem);
$_SESSION['007']='www.';
//session_destroy();
echo $_SESSION['007'];
var_dump($mem->get('i3pa9v2usiem3svj0ga4apvbc3'));
?>
完整代码如下。
<?php
function dif($row, $zz){
if(sizeof($zz)==0){
return 1;
}
//print_r($row);
//echo 'PK<br/>';
foreach($zz as $row2){
if( ($row2[0]+$row2[2] <= $row[0] && $row2[1]+$row2[2] <= $row[1]) || ($row[0]+$row[2] <= $row2[0] && $row[1]+$row[2] <= $row2[1]) ){
//echo "wwwwwwwww";
}else{
return 0;
}
}
return 1;
}
function str_insert($str, $i, $substr)
{
for($j=0; $j<$i; $j++){
$startstr .= $str[$j];
}
for ($j=$i; $j<strlen($str); $j++){
$laststr .= $str[$j];
}
$str = ($startstr . $substr . $laststr);
return $str;
}
$str1 = "丁丁是个很好的人";
$str2 = "小明是不错的孩子";
echo '<pre>';
$k = 0;
for( $j = 0; $j < strlen($str1); $j++ ){
for( $i = 0; $i < strlen($str2); $i++ ){
if( $str1[$j] == $str2[$i] ){
$node[$k] = array($j,$i);
$k++;
}
}
}
//echo '#'.sizeof($node).'#<br/>';
for( $m = 0; $m < sizeof($node); $m++){
$n = 0;
do{
$n++;
}while( (($node[$m][0]+$n) < strlen($str1)) && ($str1[$node[$m][0]+$n] == $str2[$node[$m][1]+$n]) );
$arr2[$m] = $n;
$node[$m][2] = $n;
}
array_multisort()($arr2, SORT_DESC, $node);
//print_r($node);
$x = 0;
foreach($node as $row){
if( dif($row, $zz)){
$zz[$x] = $row;
//print_r($row);
$x++;
}
}
foreach($zz as $key => $t1231){
$arr3[$key] = $t1231[0];
};
//print_r($zz);
array_multisort($arr3, SORT_DESC, $zz);
//echo '##########<br/>';
//print_r($arr3);
//print_r($zz);
echo '</pre>';
foreach($zz as $value){
$str1 = str_insert($str1, $value[0]+$value[2], "</b>");
$str1 = str_insert($str1, $value[0], "<b >");
$str2 = str_insert($str2, $value[1]+$value[2], "</b>");
$str2 = str_insert($str2, $value[1], "<b >");
}
echo 'A: '.$str1.'<br/>';
echo 'B: '.$str2.'<br/>';
?>