strlen mb_strlen
strlen 和mb_strlen 都是用于获取字符串长度的,其中strlen 只针对单字节编码字符,
也就是说它计算的是字符串的总字节数,如果是多字节编码,如gbk 和utf8,使用strlen 得
到的不是字符的个数,而是该字符的总字节数,可以使用mb_strlen 获取其字符个数,使用
mb_strlen 要注意两点,一是要开启mbstring 扩展,二是要指定字符集。
45 15 15 28
相关题目1:实现中文字串截取无乱码的方法。
方法一,使用php 内置函数mb_substr()
方法二,自定义函数,以utf8 为例,如下:
:实现中文字串截取无
函数是用正则表达式将字符串分割到数组中( ) split
$mystr="www.coolneng.com@163.com";
@$show=split('\.',$mystr);
var_dump($show);
$show2=explode('.',$mystr);
$show2=array_map('ucfirst',$show2);
$show2=implode(',',$show2);
var_dump($show2);
if else = > ? : ;
isset($mystr3)==true ? $a=$mystr3 : $a= 'flase';
echo $a;
flase
4. 写出下列几个预定义全局变量的作用(新浪网技术部)
$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录
$_SERVER['HTTP_HOST '] //当前请求的Host: 头部的内容
$_SERVER['REMOTE_ADDR'] //正在浏览当前页面用户的IP 地址
$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的URL 地址
$_SERVER['SERVER_NAME'] //当前运行脚本所在服务器主机的名称
$_FILES //包含有所有上传的文件信息
$_FILES['userfile']['name'] //客户端机器文件的原名称
$_FILES['userfile']['type'] //文件MIME 类型,如果浏览器提供此信息的话,如“image/gif”。
$_FILES['userfile']['size'] //已上传文件的大小,单位为字节
$_FILES['userfile']['tmp_name'] //文件被上传后在服务端储存的临时文件名
$_FILES['userfile']['error'] //和该文件上传相关的错误代码
/home/wwwcooln/domains/coolneng.com/public_html
coolneng.com
18.224.63.10
coolneng.com
include 和require 都能把另外一个文件包含到当前文件中,他们有什么区别?Include 和
include_once又有什么区别?(新浪网技术部)
二者区别只有一个,那就是对包含文件的需求程度,include 就是包含,如果被包含的
文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。
而require 意思是需要,如果被包含文件不存在或者无法打开的时候,则会提示错误,
并且会终止程序的执行。
这两种结构除了在如何处理失败之外完全一样。
once 的意思是一次,那么include_once 和require_once 表示只包含一次,避免重复包含。
简述POST 和GET传输的最大容量分别是多少? (51.com 笔试题)
POST 根据你php.ini 文件配置(默认是8M)
GET 的话大小限制在2KB
相关题目:表单中get与post提交方法的区别?
get 是发送请求HTTP 协议通过url 参数传递进行接收,而post 是实体数据,可以通过
表单提交大量信息。
echo(),print(),print_r()的区别?(新浪)
echo 是一个语言结构,输出一个或多个字符串;
print() 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起
它的参数列表,它输出一个字符串;
print_r () 是一个函数,打印变量的信息,基本类型,数组,对象。
用PHP打印出前一天的时间格式是2006-5-10 22:21:21。
echo date("Y-m-d H:i:s",time()-24*3600);
2024-12-20 20:25:34
不使用第三个变量交换两个变量的值 把数组中的值赋给一些变量:list()
$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";
http://ci.baidu.com/TdxzULjW8z:实现中文字串截取无乱码的方法
hp中传值与传引用的区
:实现中文字串截取无乱码的方法
将1234567890转换成1,234,567,890 每3位用逗号隔开的形式。反转字符串 strrev
$sknum=strrev($sk_str4);
echo $sknum;
gnenlooc.www
检测一个变量是否有设置的函数是否?是否为空的函数是?
isset 检测一个变量是否设置
empty 检测是否为空
注意二者的区别,如果变量是非空或非零的值,则empty() 返回FALSE。换句话说,
""、0、"0"、NULL、FALSE、array() 以及没有任何属性的对象都将被认为是空的。
检测变量:是
检测变量:null
将john 添加到 cars 数组中? ( 百度)
$cars[]="john";
array_push($cars, "john2");
var_dump($cars);
array(7) {
[0]=>
string(5) "Volvo"
[1]=>
string(3) "BMW"
[2]=>
string(4) "SAAB"
[3]=>
string(6) "红旗"
[4]=>
string(6) "吉普"
[5]=>
string(4) "john"
[6]=>
string(5) "john2"
}
sort($cars);根据数组中元素的值,以英文字母顺序排序,索引键会由0 到n-1 重新编号。
主要是当数组索引键的值无关紧要时用来把数组排序。[arsort=rsort]
asort(),对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很
重要的结合数组进行排序。
ksort(),根据数组中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排
序的关联数组。
array(7) {
[1]=>
string(3) "BMW"
[2]=>
string(4) "SAAB"
[0]=>
string(5) "Volvo"
[5]=>
string(4) "john"
[6]=>
string(5) "john2"
[4]=>
string(6) "吉普"
[3]=>
string(6) "红旗"
}
在PHP中error_reporting这个函数有什么作用?
打开或者关闭错误报告,如:
error_reporting(0);
error_reporting(E_ALL & ~ E_NOTICE);
error_reporting(E_ALL);
常量如何定义? 如何检测一个常量是否被定义?
定义常量:define() ,
检测常量是否定义:defined(),如
define("TEST","happy new year!");
if( defined("TEST")){
echo TEST;
}
happy new year!
在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____
顶格写,并且不能包含任何其它字符除";",如:
my name is.. Jiang Qihui!
her is no me
count("abc"); 输出什么? 输出1
如果var 不是数组类型或者实现了Countable 接口的对象,将返回1,有一个例外,
如果var 是NULL 则结果是0。
相关题目:What will be the output of the
171
PHP的意思,它能干些什么?
PHP( Hypertext Preprocessor,超文本预处理器的字母缩写)是一种被广泛应用的开放
源代码的多用途脚本语言,它可嵌入到HTML 中,尤其适合web 开发。
PHP 能做任何事。PHP 主要是用于服务端的脚本程序,因此可以用PHP 来完成任何
其它的CGI 程序能够完成的工作,例如收集表单数据,生成动态网页,或者发送/接收
Cookies。但PHP 的功能远不局限于此。
PHP 脚本主要用于以下三个领域:
1) 服务端脚本。这是PHP 最传统,也是最主要的目标领域。
2) 命令行脚本。可以编写一段PHP 脚本,并且不需要任何服务器或者浏览器来运行它。
通过这种方式,仅仅只需要PHP 解析器来执行。
3) 编写桌面应用程序。
使用PHP 中任何一种输出语句,包括echo、print、printf,
This text is written to
the screen as output ands this is parsed too. If you wanted you can have HTML tags in here as well. The END; remarks must be on a line of its 年版》22 own, sand cant contain any extra white space.
$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值,并请将数组的值用','
号分隔并合并成字串输出。
打印第一个元素:echo $arr[0];
以’,’合并成字符串:echo implode(',',$arr);
BMW,SAAB,Volvo,john,john2,吉普,红旗
$a = 'abcdef'; 请取出$a的值并打印出第一个字母
echo $a{0} 或echo $a[0]
cc
将字符09转换成十进制数字。(百度)
使用intval 函数,echo intval("09"),或者使用int 强制类型转换。
intval("12",5) = 7; (5进制的12=10进制7) 第二个参数默认是10
9
15
字符串"open_door" 转换成"OpenDoor" 、"make_by_id" 转换成"MakeById"。
$e_arr=explode('_',$str);
$e_arr=array_map('ucfirst',$e_arr);
$e_arr=implode('',$e_arr);
string(8) "MakeById"
定义常量MYPI=3.14_________________________;
define("MYPI",3.14);
3.14
用PHP编写代码在页面输出当前的北京时间,格式为“2007-01-18 09:22:03”
date_default_timezone_set('PRC');
echo date("Y-m-d H:i:s",time());
计算某段字符串中某个字符出现的次数(例如: gdfgfdgd59gmkblg中g的次数)
$text = 'gdfgfdgd59gmkblg';
echo substr_count ( $text,'g');函数计算子串在字符串中出现的次数
5
请将’jack’添加到$cars 数组的开头,并把jack打
印出来。
array_unshift($arr,’jack’);
echo $arr[0];
jack
请将$str用’,’分割,并把分割后的值放到$arr数组中?
$arr = explode(‘,’,$str);
string(44) "jack,BMW,SAAB,Volvo,john,john2,吉普,红旗"
array(8) {
[0]=>
string(4) "jack"
[1]=>
string(3) "BMW"
[2]=>
string(4) "SAAB"
[3]=>
string(5) "Volvo"
[4]=>
string(4) "john"
[5]=>
string(5) "john2"
[6]=>
string(6) "吉普"
[7]=>
string(6) "红旗"
}
请将$arr 按照从大到小的顺序排序,并保持其键值不变?
arsort($arr);
print_r($arr);
array(8) {
[7]=>
string(6) "红旗"
[6]=>
string(6) "吉普"
[5]=>
string(5) "john2"
[4]=>
string(4) "john"
[0]=>
string(4) "jack"
[3]=>
string(5) "Volvo"
[2]=>
string(4) "SAAB"
[1]=>
string(3) "BMW"
}
$mail = “gaofei@163.com”; 请将此邮箱的域(163.com)取出来并打印,看最多能写出几
种方法?
echo strstr($mail,'163');
echo substr($mail,7);
echo substr($mail, strpos($mail, '@')+1);
$arr = explode("@",$mail); echo $arr[1];
163.com163.com163.com163.com
PHP中的注释的写法,要列出三种?
// 注释内容C 风格的单行注释
# 注释内容unix 风格的单行注释
/* 注释内容*/ C 风格的多行注释
php函数中使用具有全局属性的变量,说出两种方式?
global $a 或者$GLOBALS['a']
456
如何往一个数组后面添加一个值?列出两种方式?
$arr[ ] = $value;
array_push($arr, $value);
array(9) {
[7]=>
string(6) "红旗"
[6]=>
string(6) "吉普"
[5]=>
string(5) "john2"
[4]=>
string(4) "john"
[0]=>
string(4) "jack"
[3]=>
string(5) "Volvo"
[2]=>
string(4) "SAAB"
[1]=>
string(3) "BMW"
[8]=>
string(12) "www.coolneng"
}
说出数组涉及到的常用函数。
array -- 声明一个数组
count -- 计算数组中的单元数目或对象中的属性个数
foreach -- 遍历数组
list -- 遍历数组
explode -- 将字符串转成数组
implode -- 将数组转成一个新字符串
array_merge -- 合并一个或多个数组
is_array -- 检查是否是数组
print_r -- 输出数组
sort -- 数组排序
array_keys -- 返回数组中所有的键名
array_values -- 返回数组中所有的值
key -- 从关联数组中取得键名
字符串的常用函数?
trim() -- 去除字符串首尾处的空白字符(或者其他字符)
strlen() -- 字符串长度
substr() -- 截取字符串
str_replace() -- 替换字符串函数
substr_replace() -- 对指定字符串中的部分字符串进行替换
strstr() -- 检索字符串函数
explode() -- 分割字符串函数
implode() -- 将数组合并成字符串
str_repeat() -- 重复一个字符串
addslashes(); -- 转义字符串
htmlspecialchars() -- THML 实体转义
请列举出你所知道的全局环境变量(亿邮)
$_ENV;
$_SERVER;
$_REQUEST;
$_FILES;
$_SESSION;
$_COOKIE;
$_GET;
$_POST;
$GLOBALS;
PHP判断id=>500是否在这个数组内? (亿邮)
使用in_array 函数 - b in a
in_array($b,$a)
SESSION 与COOKIE 的区别?
COOKIE 保存在客户端,而SESSION 则保存服务器端。
从安全性的角度来讲,SESSION 的安全性要高。
从保存内容的类型的角度来讲,COOKIE 只保存字符串(及能够自动转换成字符串),
而session 则可以保存所有的数据类型。
从保存内容的大小的角度来讲,COOKIE 保存的内容是有限制的,比较小,而SESSION
基本上没有这个限制。
从性能的角度来讲,用SESSION 的话,对服务器的压力会更大一些。
禁用COOKIE 后SEESION 还能用吗? (51.com 笔试题)
可以,COOKIE 和SESSION 都是用来实现会话机制的,由于http 协议是无状态的,所
以要想跟踪一个用户在同一个网站之间不同页面的状态,需要有这么一个机制----会话机
制。
COOKIE:将会话信息的保存到浏览器端。
SESSION:将会话信息保存到服务器端。
SESSION 默认情况下是基于COOKIE 的,对于SESSION 来说,每生成一个SESSIONID,
都会将其发送到浏览器端,让后将其保存到cookie 当中。
如果禁用了COOKIE,则基于COOKIE 的SESSION 不好使了,我们可以使用get,传
递SID,或者直接开启透明的SID(此时需要关闭基于cookie 的SESSION 配置项)。
如何设置一个cookie 的名字为username,值为jack,并且让此cookie 一周后失效?
setcookie(‘username’,’jack’,time()+7*24*3600);
取session 之前,需要做什么?
:使用setcookie 函数前,需要注意什么?
session_start()前面不能有任何输出,包括空行。
php 连接mysql 之后,如何设置mysql 的字符集编码为utf8?
mysql_query(“set names utf8”);
MySql之增删改查
添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据);
查询: SELECT * FROM [表名] WHERE ([条件]);
建立索引:CREATE INDEX [索引文件名] ON [表名] ([字段名]);
删除:DELETE FROM [表名] WHERE ([条件]);
修改:UPDATE [表名] SET [修改内容如name = 'Mary'] WHERE [条件];
INSERT INTO `table` (`k`,`v`) VALUES ('k','v');
UPDATE `table` SET `k` = 'k', `v` = 'v' WHERE `k` = 'k';
DELETE FROM `table` WHERE `k` = 'k';
SELECT `k`, `v` FROM `table` LIMIT 0, 1000;
php 访问数据库有哪几步?
主要有以下几个步骤:
1) 连接数据库服务器:mysql_connect('host','user','password');
2) 选择数据库:mysql_select_db(数据库名);
3) 设置从数据库提取数据的字符集:mysql_query("set names utf8");
4) 执行sql 语句:mysql_query(sql 语句);
5) 处理结果集
6) 关闭结果集,释放资源:mysql_free_result($result);
7) 关闭与数据库服务器的连接:mysql_close($link);
解释MySQL 外连接、内连接与自连接的区别(小米)
先说什么是交叉连接,交叉连接又叫笛卡尔积,它是指不使用任何条件,直接将一个表
的所有记录和另一个表中的所有记录一一匹配。
内连接则是只有条件的交叉连接,根据某个条件筛选出符合条件的记录,不符合条件的
记录不会出现在结果集中,即内连接只连接匹配的行。
而外连接其结果集中不仅包含符合连接条件的行,而且还会包括左表、右表或两个表中
的所有数据行,这三种情况依次称之为左外连接,右外连接,和全外连接。
左外连接,也称左连接,左表为主表,左表中的所有记录都会出现在结果集中,对于那
些在右表中并没有匹配的记录,仍然要显示,右边对应的那些字段值以NULL 来填充。
右外连接,也称右连接,右表为主表,右表中的所有记录都会出现在结果集中。
左连接和右连接可以互换,MySQL 目前还不支持全外连接。
两条查询语句,一条是select * from table1 where id > 10 and id < 100,一条是select *
from table2 where id > 200 and id < 500,请尝试只写一条SQL 语句,完成相应的查询任务。
(鑫众人云)
使用union 语句,但有一个前提,即table1 和table2 的结构相同
SELECT * FROM table1 WHERE id > 10 AND id < 100
UNION ALL
SELECT * FROM table2 WHERE id > 200 AND id < 500
假设现在有一个数据库服务器,服务器地址为192.168.0.110,用户名为root密码为
password请使用PHP编写一个面向过程化的连接该数据库的脚本代码(亿邮)
$conn = mysql_connect('192.168.0.110','root','password') or die('数据库连接失败');
简述在MySQL 数据库中MyISAM 和InnoDB 的区别(亿邮)
区别主要有以下几个:
构成上,MyISAM 的表在磁盘中有三个文件组成,分别是表定义文件(.frm)、数据文
件(.MYD)、索引文件(.MYI),而InnoDB 的表由表定义文件(.frm)、表空间数据和日志文
件组成。
安全方面,MyISAM 强调的是性能,其查询效率较高,但不支持事务和外键等安全性
方面的功能,而InnoDB 支持事务和外键等高级功能,查询效率稍低。
对锁的支持,MyISAM 支持表锁,而InnoDB 支持行锁。
现在有下面一个查询语句select * from tabname where id=2 and password='abc’如何判
断它是现在是最优的。(亿邮)
可以使用explain select * from tabname where id=2 and password='abc’来分析其执行情况。
请问如何在Mysql 操作中如何写入utf8 格式数据(亿邮)
首先确保数据库中的表是基于utf8 编码的,其次php 文件是utf8 编码,在执行mysql
操作之前,执行mysql_query(‘set names utf8’)操作,对于要操作的文本如果是utf8
编码,则可以直接操作,如果是其它编码,则可以使用iconv 函数将其转化为utf8 编码,
然后写入。
sql 语句应该考虑哪些安全性?(新浪网技术部)
防止Sql 注入,对特殊字符进行转义、过滤或者使用预编译的sql 语句绑定变量。
最小权限原则,特别是不要用root 账户,为不同的类型的动作或者组建使用不同的账
户。
当sql 运行出错时,不要把数据库返回的错误信息全部显示给用户,以防止泄露服务器
和数据库相关信息。