PHP脏话处理

Category : PHP

在开发过程中,经常会遇到需要处理脏字的问题,这里提供了一种简单通用的解决办法.
首先,把所有需要过滤的脏字存成字符串的形式,每个脏字之间用','来分隔,比如说"fuck,shit".
然后,用explode()来将字符串转换成数组,并用str_replace()来进行脏字的替换.
PHP代码:

<?php
function remove_bad_words($words){
    $bad_words = "shit,fuck";
    $array = explode(',',$bad_words);
    foreach ($array as $one) {
        $words = str_replace($one,'**',$words);
    }
    return $words;
}
$original_words = "shit , fuck you";
$modified_words = remove_bad_words($words);
print_r($modified_words);
?>

Tags :  PHP 

Published by 2008-12-10 17:27:14 | Views : 298 | Comments : 45


WEB开发人员都应该有的工具

Category : PHP

一、最好用的WEB开发IDE -- Aptana

目前的发行版是1.2.1.这是一个免费的基于Eclipse的IDE,用它的好处当然显而易见了。原生的支持HTML,CSS和JAVASCRIPT,支持的开发语言有PHP,Ruby On Rails,Python,当然,这些都需要通过插件来支持,不过既然是基于Eclipse的,那么就不要对它的扩展能力表示怀疑.

二、最好用的WEB调试工具 -- Firefox + Firebug

毫无疑问,双F组合已经成为web开发人员的默认调试工具了.使用Firebug,我们可以非常容易的对样式和js进行调试,节省了开发人员的时间.目前还有FirePHP,这是个Firebug的扩展,使用它,我们还可以对PHP进行调试.

附:Aptana常用快捷键
Ctrl + D : 删除鼠标所在行
Ctrl + Alt + Arrow Left : 代码向左移一个Tab(可以直接按下Tab)
Ctrl + Alt + Arrow Right : 代码向右移一个Tab(可以按下Sheft + Tab)
Ctrl + Alt + Arrow Up : 将本行代码复制到上一行
Ctrl + Alt + Arrow Down : 将本行代码复制到下一行

Tags :  PHP  IDE  Firefox  Aptana 

Published by 2008-12-10 17:05:59 | Views : 308 | Comments : 51


PHP基础查漏补缺

Category : PHP

前天帮公司做oDesk的PHP测试,才发现原来基础这么重要,很多很简单的题都需要查资料才知道答案,于是决定重温下PHP知识.

一、数据类型

php有以下几个数据类型:

1.Integer整型 就是各种整型数字,$a = 15;$b = 27;$c = 0x24;等

2.Float浮点型 各种小数类型的数据,$a = 0.125;$b = 17.0E - 3;等

3.String字符串型 各种字符串数据,$a = "hello"; 输入长一点的字符串可以这样

   1. $foo = <<<EOD  
   2.   This is a "multiline" string  
   3.   assigned using the 'heredoc' syntax.  
   4. EOD;  

4.Array数组类型 php中最重要的数据类型就是数组,其结构也可以千变万化.定义一个数组:

$array = array(
         '0' => array(
                   'name' => 'David',
             'nickname' => 'kingheaven'
         ),
         '1' => array(
                   'name' => 'Shieh',
             'nickname' => 'kingheaven'
         )
);

这里定义了一个2维数组,使用里面的数据的话,可以这样: echo $array['0']['name'];

5.Boolen布尔型

只有2个可选值,true和false

6.Null类型

不存在用Null来表示(Null不区分大小写)

7.Class对象类型

用一个例子来表示

class test {
      var $str = "Hello World";
           function init($str) {
                $this->str = $str;
           }
}

引用这个类里面的值用以下代码:

$class = new test;echo $class->str;

二、数据类型的转换

使用(int),(float),(string),(array)等将数据转换成相应类型,比如:

$a = (int)"123";$b = 123;$c = (string)$b;

三、面向对象基础

1.使用new来初始化对象:

class test {
    function __construct() {
        echo "hello";
    }
}

$a = new test;

2.使用extends来继承类

class a {
    function __construct() {
        echo "hello";
    }
}

class b extends a {
    function __construct() {
        echo "hello again";
    }
}

$b = new b;

3.使用__autoload()来自动加载对象

function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2();

这个例子中,$obj和$obj2会自动从MyClass1.php和MyClass2.php中去查找MyClass1和MyClass2类,如果出错,会抛出异常.

4.__construct()构造函数和__destruct()析构函数

和所有面向对象语言中的构造函数和析构函数一样,在类初始化和销毁的时候自动运行,只有一点需要注意,这个2个函数都没有返回值,而且不能尝试去抛出异常

5.访问控制public,protected和private

规则如下, 由 public 所定义的类成员可以在任何地方被访问;由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);而由 private 定义的类成员则只能被其所在类访问.需要注意的是,如果未指定访问控制,则默认为public.

6.范围解析操作符::

要操作不在一个类内的函数或者变量,可以使用::来解析

class MyClass {
    const CONST_VALUE = 'A constant value';
}

echo MyClass::CONST_VALUE;

在类的外面使用类名加::来表示调用这个类中的变量或者方法.如果想在类中调用父类的方法呢,可以这样

class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    // 覆盖父类中的方法
    public function myFunc()
    {
        // 但仍然可以调用已被覆盖的方法
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

使用parent表示要使用父类的方法或者变量.要调用本类中的方法或者变量,可以用self::或者$this->.

Tags :  php 

Published by 2008-11-14 11:04:11 | Views : 290 | Comments : 40