⑴ php 字符串比较,取不同
例子如下:
$a="abcde12";
$b="abcdf6";
echo"<pre>";
var_mp(diffStr($a,$b));
echo"</pre>";
/*
*比较字符串不同的字符
*@参数:$str1:第一个字符串,$str2:第二个字符串
*@返回值:不同字符串的数组,
*/
functiondiffStr($str1,$str2){
$sArr1=str_split($str1);
$sArr2=str_split($str2);
$num1=count($sArr1);
$num2=count($sArr2);
$aNew=array();
if($num1>$num2){
foreach($sArr1as$k=>$val){
if($num2>$k&&$val!=$sArr2[$k]){
$aNew[]=array('s1'=>$val,'s2'=>$sArr2[$k]);
}elseif($num2<=$k){
$aNew[]=array("s1"=>$val);
}
}
}elseif($num1<$num2){
foreach($sArr2as$k=>$val){
if($num1>$k&&$val!=$sArr1[$k]){
$aNew[]=array('s1'=>$sArr1[$k],'s2'=>$val);
}elseif($num1<=$k){
$aNew[]=array("s2"=>$val);
}
}
}elseif($num1==$num2){
foreach($sArr1as$k=>$val){
if($val!=$sArr2[$k]){
$aNew[]=array('s1'=>$val,'s2'=>$sArr2[$k]);
}
}
}
return$aNew;
}
⑵ php 如何比较两个中文字符串是否相等
function
arr_split_zh($tempaddtext){
$cind
=
0;
$arr_cont=array();
for($i=0;$i<strlen($tempaddtext);$i++)
{
if(strlen(substr($tempaddtext,$cind,1))
>
0){
if(ord(substr($tempaddtext,$cind,1))
<
0xA1
){
//如果为英文则取1个
字节
array_push($arr_cont,substr($tempaddtext,$cind,1));
$
cin
d++;
}else{
array_push($arr_cont,substr($tempaddtext,$cind,2));
$cind+=2;
}
}
}
return
$arr_cont;
}
$str1="中文字符串1";
$str2="中文字符串2";
$Arr_Str1
=
arr_split_zh($str1);
$Arr_Str2
=
arr_split_zh($str2);
function
Str_Is_Equal($mystr1,$mystr2){
$result
=
0;
for($i=0;$mystr1[$i];$i++){
if($mystr1[$i]
!=$mystr2[$i]){
$result
=
0;
break;
}
$result
=
1;
}
return
$result;
}
看看行不?我这边Apache环境有点问题,所以没有测试
⑶ php 多个字符串比较是否相同
java中判断字符串是否相等有两种方法:1、用“==”运算符,该运算符表示指向字符串的引用是否相同,比如:
string
a="abc";string
b="abc",那么a==b将返回true。这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象;再比如:string
a=new
string("abc");
string
b=new
string("abc");那么a==b将返回false,因为a和b指向不同的对象。2、用equals方法,该方法比较的是字符串的内容是否相同,比如:string
a=new
string("abc");
string
b=new
string("abc");
a.equals(b);将返回true。所以通常情况下,为了避免出现上述问题,判断字符串是否相等使用equals方法。
⑷ php 怎么实现文件的对比
可以按照word遍历两个字符串,逐个对比,当发现不一样的字符时开始标记差异的开始位置,然后在一个串的剩余字符中查找当前串后面几个字符的字串,如果查找到则标记出一个diff结束。有可能会发现多种diff结果,可以再计算diff字符长度最小的组合。