php兩個字元串相等
1. php strcmp比較二個相等字元串時,返回不是0,不相等。
split已經比較老了···用explode試試
我剛測試
$string = "ipvar HOME_NET 192.168.12.0/16\nipvar HOME_NET 192.168.12.0/16";
$content = explode("\n", $string);
echo strcmp($content[0], $content[1]); // 0
也有可能是你的文本編碼和代碼的編碼不一致造成···你的文本最好用你的ide重新保存一次··之前我弄一個還原sql的功能,就是因為用記事本保存了一個utf8格式的文本,然後我用我的程序讀sql語句··寫入資料庫···提示錯誤··找了老半天···是記事本保存的utf8·和我ide保存的utf8不同造成···我用ide保存之後再去讀就沒有問題···
2. php 怎麼利用兩個字元串用sha1加密相等繞過
在php.ini中配置:
zend_extension=/png/php/7.0.0/lib/php/extensions/no-debug-non-zts-20151012/opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
;關閉PHP文件時間戳驗證
opcache.validate_timestamps=Off
;每60秒驗證php文件時間戳是否更新
;opcache.revalidate_freq=60
opcache.fast_shutdown=1
;注意,PHP7下命令行執行的腳本也會被 opcache.file_cache 緩存.
3. 如何判斷兩個字元串中所有的字元相同,無視
比較兩個字元串是否相等,最常見的方法就是使用「===」來判斷,至於它和「==」的區別,簡單來說就是前者強調「identical」類型也要求一樣;後者要求「equal」,值相同就可以了,參考【1】。或者使用strcmp來判斷,但是這個能夠告訴你兩個字元串是否相等,但是無法告訴你在那裡不同。我的思路是單字元串分割為一個個字母(character),這樣比較就能精確知道在那個位置不同了。分隔字元串,使用「str_split」就可以了,語法參考【2】。然後輸出結果數組,好處是連空格也會作為數組的元素。我之前的例子就是因為前一個字元串包含2個空格,而後一個只有一個。但是輸出的時候看到的顯示都是一樣的。 也可以按照其他分隔符進行分割,如「explode」或者「preg_split」,
一般能用 !=, == 比較兩個對象是否相等,只所以說是兩個對象,是因為他們不一定全部為字元串,也能為整型等等。比如
$a = "joe";
$b = "jerry";
if ($a != $b)
{
echo "不相等";
}
else
{
echo "相等";
}
如果用 !==,===(能看到多了一個等號)比較的話,兩個對象的類型要嚴格相等才能返回true;否則用==,!=則會將字元串自動轉換成相應的類型,以便進行比較.
22 == "22"; // 返回 true
22 === "22"; // 返回false
正因為這樣,所以我們的程式時常會發生一些想不到的「意外」:
0 == "我愛你"; // 返回true
1 == "1 我愛你";// 返回true
php教程里更有這樣一組用於字元串比較的函數:strcmp,strcasecmp,strncasecmp(), strncmp(),他們都是如果前者比後者大,則返回大於0的整數;如果前者比後者小,則返回小於0的整數;如果兩者相等,則返回0.他們比較的原理和其他語言的規則都是相同的。
strcmp是用於區分大小寫(即大小寫敏感)的字元串比較:
echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比較的是 "b"和"b"
strcasecmp用於不區分大小寫的字元串比較:
echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比較的是"d"和"e"
strncmp用於比較字元串的一部分,從字元串的開頭開始比較,第三個參數,為要比較的長度:
echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比較了 abc 和 abc
strncasecmp用於不區分大小寫的比較字元串的一部分,從字元串的開頭開始比較,第三個參數,為要比較的長度:
echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比較了 abc 和 abc, 由於不區分大小寫,所以兩者是相同的。
更有一種情況是單單比較字元串大小,達不到我們預定的需求,比如照常理 10.gif 會比 5.gif 大,但如果應用上面幾個函數,就會返回 -1,即表示 10.gif比5.gif,針對這種情況,php提供了兩個自然對比的函數strnatcmp,strnatcasecmp:
echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0)
echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)
[譯者註:multi-paradigm 中的 paradigm 指形式,常見的編程形式包括:命令式(imperative)、函數式(functional)、申明式(declarative)、面向對象(object-oriented)、過程化(proceral)、邏輯化(logic)、風格化(symbolic)——參考維基網路]
4. php如何對比字元串內容
PHP中,可以用雙等號(==)或 三等號(===)來比較字元串。x0dx0a二者的區別是:雙等號不比較類型,三等號會比較類型,但不轉換類型;用雙等號進行比較時,如果等號左右兩邊有數字類型的值,剛會把另一個值轉化為數字,然後進行比較。如果是純字元串或者NULL時,會轉化為0進行比較。同樣,大小於號也和等號一樣,比較時可能出現不正確的結果。x0dx0a綜上所述,比較字元串可以用PHP的自帶函數strcmp和strcasecmp。其中strcasecmp是strcmp的變種,它會先把字元串轉化為小寫再進行比較。 如下代碼:x0dx0avar_mp(0 == 'Test');x0dx0avar_mp(0 == '');x0dx0avar_mp(5 > 'T');x0dx0avar_mp(strcmp(5, 'T'));x0dx0a結果為(第1~3結果是不對的,只有第4個是對的)代碼如下:x0dx0abool(true)x0dx0abool(true)x0dx0abool(true)x0dx0aint(-1)
5. php 如何比較兩個中文字元串是否相等
普通比較用==類型和字元都比較用=== 即全等 比如 1和true用===比較的話就是不相等,用==比較的話就是相等的(前者是int型後者是bool型)1和"1"用===比較的話就是不相等,用==比較的話就相等(前者是int型,後者是str型)另:abc和Abc用==比較是不相等的.如果你在比較時出現另一個比較對像有可能大寫時,可以用strtolower把那個可能出現大寫的字元串轉成全小寫的再比較.
6. 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環境有點問題,所以沒有測試
7. 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方法。
8. PHP語言中如何比較兩個字元串完全相等
你好!
strcmp
字元串比較。
語法:
int
strcmp(string
str1,
string
str2);
返回值:
整數
函數種類:
資料處理
內容說明
本函數用來比較二字元串的大小。返回負數表示
str1
小於
str2;返回正數表示
str1
大於
str2;返回零表示二字元串相同。
我的回答你還滿意嗎~~
9. PHP如何計算兩個字元串的相似度
similar_text('my name is php', 'my name is java', $result);
var_mp($result);
參考鏈接:網頁鏈接
10. PHP 兩字元串比較,值相同 對比卻不相等
在PHP中,可以用==(雙等號)或者 ===(三等號)來比較字元串。兩者的區別是雙等號不比較類型,三等號會比較類型,它不轉換類型;用雙等號進行比較時,如果等號左右兩邊有數字類型的值,剛會把另一個值轉化為數字,然後進行比較。這樣的話,如果是純字元串或者NULL時,會轉化為0進行比較。同樣,大小於號也和等號一樣,比較時可能出現不正確的結果。
所以,比較字元串可以用PHP的自帶函數strcmp和strcasecmp。其中strcasecmp是strcmp的變種,它會先把字元串轉化為小寫再進行比較。 如下代碼:
var_mp(0 == 'Test');
var_mp(0 == '');
var_mp(5 > 'T');
var_mp(strcmp(5, 'T'));
運行結果:
bool(true)
bool(true)
bool(true)
int(-1)