本文目录一览:
- 1、php中如何判断内容中是否包含指定的文字?
- 2、php要截取一段汉语文字,怎样才能保证不把汉字拆开?
- 3、phpmyadmin导入文件,出现下面的问题,该怎么解决
- 4、PHP—strpos查找字符串
- 5、PHP 查找中文字符串
php中如何判断内容中是否包含指定的文字?
如果不是特别复杂的字符判断,不建议用正则,php的字符串函数完全可以实现,strpos()例如:
$x = "abc张三klllk";
if(strpos($x,"张三") 0){
echo "ok";
}
当然这样会有一个问题,就是当"张三"出现在字符串开头的时候,结果也为0,
这时候就要在字符串前加一特殊字符来判断。
$x="张三abc";
$x1 = "%**#".$x;
if(strpos($x1,"张三") 0){
echo "ok";
}
扩展资料
用explode进行判断PHP判断字符串的包含代码如下:
function checkstr($str){
$needle ='a';//判断是否包含a这个字符
$tmparray = explode($needle,$str);
if(count($tmparray)1){
return true;
} else{
return false;
}
}
参考资料:百度百科 - PHP类
php要截取一段汉语文字,怎样才能保证不把汉字拆开?
还得看你的编码是gbk的还是UTF8的。
以下是UTF-8的编码下的截取
function smarty_modifier_truncate_utf8($string, $length, $etc = '...')
{
$result = '';
$string = html_entity_decode(trim(strip_tags($string)), ENT_QUOTES, 'UTF-8');
$strlen = strlen($string);
for($i = 0; (($i $strlen) ($length 0)); $i++)
{
if($number = strpos(str_pad(decbin(ord(substr($string, $i, 1))), 8, '0', STR_PAD_LEFT), '0'))-phpmbstringstrpos
{
if($length 1.0)
{
break;
}
$result .= substr($string, $i, $number);
$length -= 1.0;
$i += $number - 1;
}
else
{
$result .= substr($string, $i, 1);
$length -= 0.5;
}
}
$result = htmlspecialchars($result, ENT_QUOTES, 'UTF-8');
if($i $strlen)
{
$result .= $etc;
}
return $result;
}
以下是GBK编码下的截取(常用)
function gbk_strlen($string)
{
if(extension_loaded('mbstring'))
{
mb_internal_encoding('GBK');
return mb_strlen($string);
}
else
{
preg_match_all('/[\x81-\xfe]?./', $string, $match);
return count($match[0]);
}
}
function gbk_substr($string, $start, $length = null)
{
if(extension_loaded('mbstring'))
{
mb_internal_encoding('GBK');
if(is_null($length))
{
return mb_substr($string, $start);
}
else
{
return mb_substr($string, $start, $length);
}
}
else
{
preg_match_all('/[\x81-\xfe]?./', $string, $match);
if(is_null($length))
{
return implode('', array_slice($match[0], $start));
}
else
{
return implode('', array_slice($match[0], $start, $length));
}
}
}
function smarty_modifier_truncate_gbk($string, $length = 80, $etc = '...',
$break_words = false, $middle = false)
{
if ($length == 0)
return '';
if (gbk_strlen($string) $length) {
$length -= gbk_strlen($etc);
if (!$break_words !$middle) {
$string = preg_replace('/\s+?(\S+)?$/', '', gbk_substr($string, 0, $length+1));
}
if(!$middle) {
return gbk_substr($string, 0, $length).$etc;
} else {
return gbk_substr($string, 0, $length/2) . $etc . gbk_substr($string, -$length/2);
}
} else {
return $string;
}
}
phpmyadmin导入文件,出现下面的问题,该怎么解决
打开php.ini 查看 “extension=php_mbstring.dll”是否被注释掉了
没去掉注释就自己注释掉!重启服务器
也可能是 字符集问题
进入phpmyadmin相应的数据库 操作-》设置 为对应的字符集
还不行就用命令 导入数据
PHP—strpos查找字符串
strpos——查找字符串第一次出现的位置
strpos(string \$haystack, mixed \$needle, int \$offset = 0):int
返回needle在haystack中首次出现的数字位置
offset(7.1.0开始支持负数的 offset。)
如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始 。
返回值:
返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时 注意字符串位置是从0开始,而不是从1开始的 。
如果没找到 needle,将返回 false。
注意:
PHP 查找中文字符串
在PHP中查找中文字符,有两种方案:
将PHP保存为与欲查找中文一样的编码,然后使用strpos查找。
将PHP保存为UTF-8无BOM编码,然后转换字符串编码为UTF-8,再用strpos查找。
第一种方法:
strpos($curl_res, '中文');
第二种方法:
$str = mb_convert_encoding($str, 'utf-8', 'gbk');
mb_strpos($str, '中文');
主意:函数中的中文字符串参数的编码,必须要和PHP文件保存格式的编码一致。