页面载入中...
首页 » php

PHP memcache的整理

使用memcache也有段时间了,今天闲里偷懒,整理一下关于memcache相关内容。

安装php的memcache扩展

[root@luoyinyou-dev ~]# wget http://pecl.php.net/get/memcache-2.2.5.tgz
[root@luoyinyou-dev ~]# /data/httpd/php/bin/phpize ./configure --enable-memcache --with-php-config=/data/httpd/php/bin/php-config --with-zlib-dir

将生产的so文件路径放到php.ini中
重启nginx OR other…

之前说的一篇php下载指定文件,今天终于遇到一个问题,IE另存下载时提示:无法复制,无法读取源文件或磁盘。一步一步调式,发现header报错?

因为我测试是php和html混合写的,之前没有任何输出,但就是报错。费大劲才解决这个问题:在php和html代码之间加个空行(格)。好了,header不报错,但是IE无法另存还照样出现。仔细检查代码,尝试任何可能性,试对了,解决办法:

//找到这行代码
header("Content-Type: application/octet-stream");
//修改为
header("Content-Type: application/oct…

又把防灌水的加上了

国外的灌水机貌似运作很频繁,删多次了也觉得很烦,再次加上屏蔽。

因为99.99%的评论内容都包含网址,所以第一次屏蔽时使用正则过滤网址,没几天升级wordpress,结果忘记加上那句正则。

今天彻底一点,加上中文判断,编辑wp-comments-post.php, 找到

if ( '' == $comment_content ) //大概在73行

//替换为

if (!preg_match("/[\x80-\xff]./", $comment_content))

//再将随后的wp_die的提示内容修改一下就OK了

标签:

PHP下载指定文件

<?php
function force_download($file)
{
	if ((isset($file))&&(file_exists($file))) {
		header("Content-length: ".filesize($file));
		header('Content-Type: application/octet-stream');
		header('Content-Disposition: attachment; filename="' . $file . '"');
		readfile("$file");
	} else {
		echo &qu…

PHP排序算法

<?php
//插入排序(一维数组)
function insert_sort($arr){
 $count = count($arr);
 for($i=1; $i<$count; $i++){
  $tmp = $arr[$i];
  $j = $i - 1;
  while($arr[$j] > $tmp){
   $arr[$j+1] = $arr[$j];
   $arr[$j] = $tmp;
   $j--;
  }
 }
 return $arr;
}
  
//选择排序(一维数组)
function select_sort($arr){
 $count = count($arr);
 for($i=0; $i<$count; $i++…

PHP的UNICODE编码和解码

<?php
function unicode_encode($name)
{
    $name = iconv('UTF-8', 'UCS-2', $name);
    $len = strlen($name);
    $str = '';
    for ($i = 0; $i < $len - 1; $i = $i + 2)
    {
        $c = $name[$i];
        $c2 = $name[$i + 1];
        if (ord($c) > 0)
        {   //两个字节的文字
            $str .= '\u'.base_convert(ord($c), 10, 16).str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT);
        }
        else
        {
            $str .= $c2;
        }
    }
    re…

mb_strlen

if (!function_exists('mb_strlen'))
		{
			function mb_strlen($str)
			{
		        preg_match_all("/[\x80-\xff]?./" , $str , $arr);
		        return sizeof($arr[0]);
    		}
		}

格雷码的使用

先看一道算法题:

写一个算法生成n位编码的编码串(结果有多种,任意一种都可以接受)并且符合如下条件:相邻的两个编码之间有且只能有一位不同,并给出时间与空间复杂度

比如 2位的二进制的编码生成的编码串:00 01 11 10
比如 3位的二进制编码生成的编码串:001 011 111 101 100 110 010 000

如果使用格雷码,问题就很好解决了。点击这里查看更多关于格雷码的信息

自然二进制码转换成二进制格雷码
       其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
例如:自然二进制编码如下:
1001
那么转换为格雷码的方法是:保…

递归算法:php读取xml树形菜单

<?php
$data = implode("",file('menu.xml'));
$parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, $data, $xml_array, $tags);
xml_parser_free($parser);

$showMe = xmlToArr($xml_array);

echo "<pre>";
print_r ($showMe);
echo "&…

php判断图片是否是多帧(动画)

<?php
function check($image)
{
	$content = file_get_contents($image);
	if (preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$content)) return true;
	else return false;
}
if (check('/home/lyy/luoyinyou/2.gif')) echo '真是动画';
else echo '不是动画';
?>

是不是很简单~~~~~~