PHP网站速成教程 Day 2

常用方法&正则表达式&COOKIE

字符串方法

字符串格式化

格式化字符串的目的是为了存储、显示、保证数据的安全等

  • trim($string) 去除字符串左右的空格; rtrim()去除字符串右侧空格;ltrim()去除字符串左边空格。
    通常为了防止用户误输入导致后期比对结果不一致,都要将表单的数据做一下trim操作。
  • nl2br($string) 将表单中的\n转换成html中的<br />标签;通常用户会在表单中输入换行是用\n表示的,为了显示结果一直需要将表单中内容做<br />
  • sprintf(format, $string)格式化一个字符串
    1. $table_name = 'user';
    2. $id = 1;
    3. echo sprintf("select id from %s where id = %d", $table_name, $id);
    4. %s 解释为字符串
    5. %d 解释为整数
    6. %f 解释为浮点数
    7. echo sprintf("总价格为:%.2f", 12);
  • 大小写字母转换
    ````
    //strtoupper() 字符串转换为大写
    $str = ‘hello world’;
    echo strtoupper($str);

//strtolower() 字符串转为小写
$str = “Good Say”;
echo strtolower($str);

//ucfirst() 将字符串的第一个字母大写
$str = “hello world”;
echo ucfirst($str);

//ucwords() 将字符串中单词的第一个字母大写
$str = “yoo qin”;
echo ucwords($str);

  1. - 格式化字符串以便存储
  2. 在数据写入数据库,如phpmagic_quotes_gpc选项未开启,某些字符如 ' " 是不能写入数据库的,这时就需要引用addslashes方法转移,可以通过get_magic_quotes_gpc()方法获取php是否开始magic_quotes_gpc选项

// addslashes() 为特殊符号增加 反斜线
$str = “hello’name;?”;
echo addslashes($str);

// stripslashes()反序列化,如果调用了addslashes()方法进行转移就需要调用stripslashes()进行转义输出否则会出现反斜线
$str = addslashes(“hello’s”);
echo $str.”<br />“;
echo stripslashes($str);

  1. #### 字符串的分割、连接
  2. 字符串分割、连接

//explode(string separator, $str) 将字符串按照separator分割,返回数组
$str = “yooqin@sina.com”;
$arr = explode(‘@’, $str);
var_dump($arr);

//implode(separator, $arr) 将数组拼接成字符串
$arr = array(‘yooqin’, ‘@’, ‘sina.com’);
foreach ($arr as $_key=>$_val) {
$arr[$_key] = strtoupper($_val);
}
echo implode(‘’, $arr);

  1. #### 字符串的截取、计算、替换
  2. 字符串截取、计算

//计算长度strlen(string)
//计算字符宽度mb_strlen(strlen)
//substr($string, begin, end) 截取字符串

//strpos() 查找字符串的位置
$str = “yooqin@sina.com”;
$email_server = substr($str, strpos(‘@’, $str));
echo $email_server;

//str_replace() 替换字符串
$str = “我很兴奋[:haha]快乐”;
$need = ‘[:haha]’;
$new_need = “<img src='http://www.yooqin.com/static/images/mysql/bxtree.png'>“;
echo str_replace($need, $new_need, $str);

  1. - 其他字符串函数参照手册
  2. ## 数组
  3. #### 数字索引数组
  4. 数组变量里可以存放N个变量,可以对数组进行排序、打散、遍历等操作
  5. 数组定义:$products = array('Tires', 'Oil', 'Books');
  6. 访问数组内容: echo $products[0];

//定义数组
$products = array(‘Tires’, ‘Oil’, ‘Books’);
$products[] = ‘Other’;
//访问数组
echo $products[0];
echo $products[2];
//for遍历数组
for($i=0; $i<count($products); $i++) {
echo $products[$i].”<br />“;
}

//foreach遍历数组
foreach ($products as $_key=>$_val) {
echo $_key.”—->”.$_val.”<br />“;
}

  1. #### 关键词索引数组
  2. 可以指定数组的索引即数组的key方便操作

//定义
$products = array(‘tires’=>10, ‘oil’=>20, ‘books’=>30);

//访问
echo $products[‘tires’];
//遍历,注意无法使用for遍历
foreach ($products as $_key=>$_val) {
echo $_key.”—->”.$_val.”<br />“;
}

  1. #### 多维数组
  2. 以上定义的都是一维数组,通常信息多维多维数组,比如数组存放商品的名称、图片、单价

//多维数组定义
$products = array(
‘tires’=>array(
‘id’=>1,
‘name’=>’轮胎’,
‘price’=>1000
),
‘oil’=>array(
‘id’=>2,
‘name’=>’机油’,
‘price’=>1080
)
);

//多维数组访问
foreach ($products as $_key=>$_arr) {
echo $_key.”<br />“;
foreach ($_arr as $_k=>$_item) {
//echo implode(“->”, $_item).”<br />“;
echo $_item[‘id’].”->”.$item[‘name’].”->”.$item[‘price’].”<br />“;
}
}

  1. #### 常用方法

//sort对数组进行排序
$arr = array(1, 20, 5);
var_dump(sort($arr));
//asort()与ksort()自己观察

//shuffle()函数,随机数组内容
$arr = array(‘good’, ‘hello’, ‘work’);
$arr = shuffle($arr);
echo implode(“|”, $arr);

//count()计算数组长度
//extract()将数组转换为变量,经典应用$view->assign(‘good’, $good);
````

..待续..