strlen substr for 实现str_replace同样的功能

只能用strlen substr for 实现str_replace同样的功能。可以不支持数组替换,单纯的字符串替换就OK

function my_str_replace($search=”, $replace=”, $subject=”){
$search_length = strlen($search);
$subject_length = strlen($subject);
if($search_length==0) return $subject;
if($subject_length==0) return ”;
if($search_length > $subject_length) return $subject;

for($i=0;$i<$subject_length; $i++){ if(substr($subject, $i, $search_length)==$search){ $subject = substr($subject, 0, $i).$replace.substr($subject, $i+$search_length); } } return $subject; } $s = my_str_replace('ef', 'b', 'abcdef'); var_dump($s); [/php] 很多人都以为以上答案是对的,其实是错误的! 正确的答案应该是: [php]function my_str_replace($search='', $replace='', $subject=''){ $search_length = strlen($search); $replace_length = strlen($replace); $subject_length = strlen($subject); if($search_length==0) return $subject; if($subject_length==0) return ''; if($search_length > $subject_length) return $subject;

for($i=0;$i<$subject_length; $i++){ if(substr($subject, $i, $search_length)==$search){ $subject = substr($subject, 0, $i).$replace.substr($subject, $i+$search_length); $i += $replace_length; } } return $subject; } $s = my_str_replace('ef', 'b', 'abcdef'); var_dump($s);[/php] 如果题目改一下,不能用substr,那应该怎么实现呢?大家先想想,回头把答案公布出来。

团队管理中的六个“力”

  欧美有句谚语:“一个中国人是条龙,三个中国人是条虫”。听到这样的话,每个中国人都不会高兴,但同样也指出了我们的问题所在。其实我们中国也有一句类似的谚语,叫做“三个臭皮匠,能抵一个诸葛亮”。这句名言同样说的是一种团队协作。
  作为团队中的一员,任何人都不能满足于自己单打独斗所能取得的成就。“‘一’只是小数字,难为伟大。”《纽约时报》最佳畅销书作者,领导力专家约翰·C·马克斯韦尔博士如是说。考察世界上最成功的组织,你会发现其中成功的原因都有一个共同点,那就是有效的团队管理。马克斯韦尔说:“所谓团队领导者的成功,可以定义为对周围人能力最大程度的使用。”
  对于团队的英文“Team”,有一个新的解释:T——target,目标;E——educate,教育、培训;A——ability,能力;M——moral,士气。 继续阅读团队管理中的六个“力”

如何精简和定制CKEditor编辑器

本文介绍最新CKEditor编辑器的精简,CKEditor前身就是FCKEditor,也是天缘最习惯使用的一款所见即所得编辑器,自己博客上的FCKEditor也是经过精简的,精简主要有两个目的,一是上传时候文件会少一点,快很多,二来看起来也会整齐条理许多,当然了,毕竟是开源的程序,如果精简后需要分享,还是注意要把GPL开源协议加上。 继续阅读如何精简和定制CKEditor编辑器

新手如何去学习php框架

如果已经学会了一个php框架,再去学习其他php框架,那么会很容易上手。
但是如果还没有php框架基础,想去学习php框架,往往是一头雾水,不知道从哪里下手,从我学习php框架的经验,给大家分享
一下,如何快速的去学习并掌握一个框架。 继续阅读新手如何去学习php框架

重置UCenter创始人密码

1、在Ucenter根目录下新建文件pass.php,拷贝下面代码:

<?php
$ucfounderpw = 'admin';
$ucsalt = rand(100000,999999);
$ucfounderpw = md5(md5($ucfounderpw).$ucsalt);
echo $ucfounderpw.'<br />'.$ucsalt;
?>

将第一行的admin替换为你要设置的密码,保存文件。
2、在浏览器中打开文件pass.php,你会看到两行数字。打开UCenter目录下/data/config.inc.php,找到:

define('UC_FOUNDERPW', 'af787705763aad224b2a0fc71bfebb92');
define('UC_FOUNDERSALT', '459802');

分别替换为上文得到的两行字符串,保存文件。
3、重新登录UCenter,创始人密码已经变为你设置的密码(默认为admin)。

写给新手程序员的一封信

首先,欢迎来到程序员的世界。在这个世界上,不是有很多人想创造软件并解决问题。你是一名hacker,属于那些愿意做一些有挑战性的事情的人。

“当你不创造东西时,你只会根据自己的感觉而不是能力去看待问题。” – WhyTheLuckyStiff

对于下面的文字你不必完全接受,所有这些来自一个其貌不扬的程序员。我喜欢把事情做到最好,而不是对原来的东西修修补补。 继续阅读写给新手程序员的一封信

如何正确的重置MySQL密码

关键点是:在使用skip-grant-tables参数的同时,还要加上skip-networking参数:

shell> mysqld_safe --skip-grant-tables --skip-networking &

接着使用SQL重置密码后,记得去掉skip-networking,以正常方式重启MySQL服务:

shell> /etc/init.d/mysqld restart

上面的方法需要重启两次服务,实际上还能更优雅一点,重启一次即可:

首先需要把用到的SQL语句保存到一个文本文件里(/path/to/init/file):

UPDATE `mysql`.`user` SET `Password`=PASSWORD('yourpassword') WHERE `User`='root' AND `Host`= '127.0.0.1';
FLUSH PRIVILEGES;

接着使用init-file参数启动MySQL服务,

shell> /etc/init.d/mysql stop
shell> mysqld_safe --init-file=/path/to/init/file &

此时,密码就已经重置了,最后别忘了删除文件内容,免得泄露密码。

提示:本文用到的参数都是通过命令行mysqld_safe传递的,实际上也可以通过my.cnf。

联想:是否可以通过init-file来初始化一个数据库或者导入数据呢?

参考:关于重置密码,官方文档里有专门的描述:How to Reset the Root Password

crontab-for-windows

接触过Linux的人都知道crontab,一个计划任务工具。Windows下有两个,SCHTASKS和AT。

Cron(Windows 9x/NT版)
下载地址:http://www.kalab.com/freeware/cron/cron.zip

Cron(NT服务版)
下载地址:http://www.kalab.com/freeware/cron/crons.zip

使用说明:

# 每分钟执行一次
* * * * * c:\tools\CheckForNewFiles.exe

# 每小时执行一次
0 * * * * c:\tests\backup.bat

# 每天中午12点30分执行
30 12 * * * c:\tests\backup.bat

# 每天0点0分执行
0 0 * * 3 c:\tests\backup.bat

# 每月1号14点45分执行
45 14 1 * * c:\path_to_scanner\scan c:

# 每30分钟执行一次
0,30 * * * * xcopy c:\docs\*.* y:\users /s

# 周1至5中每天的每小时执行
0 0-12 * * 1-5 c:\...\cmd.exe /c "copy c:\... e:\"

Nginx虚拟目录(alias)支持PHP配置(优化版)

原文:http://blog.sina.com.cn/s/blog_54254a840100q1qb.html

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /pdenv/data/html/;
            index  index.html index.htm index.php;
			autoindex on;
        }

        location ~ ^/space/(.*\.php)$ {
            alias /pdenv/data/html/Kohana/$1;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location = /space {
            rewrite ^ $scheme://$host$uri/ permanent;
        }

        location /space/ {
            index index.php;
            alias /pdenv/data/html/Kohana/;
        }

        location ~ \.php$ {
            root           /pdenv/data/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }