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 : 223 | Comments : 39
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 : 将本行代码复制到下一行
Published by 2008-12-10 17:05:59 | Views : 234 | Comments : 41
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 : 249 | Comments : 38