本文目錄一覽:
- 1、PHP圖片上傳的唯一性怎麼做?
- 2、如何使用php生成唯一ID的4種方法
- 3、thinkphp怎麼生成唯一標識
- 4、php 如何獲取客戶端唯一標識
- 5、php 如何獲取唯一身份訪問者,根據每一台電腦來獲得唯一的標識
PHP圖片上傳的唯一性怎麼做?
最簡單的方法就是,用二進制碼對圖片進行讀取
$file1 = “1.jpg”; //第一個圖片文件
$file2 = “2.jpg”; //第二個圖片文件,實為1.jpg的拷貝
//第一個文件讀取操作
$stream = fopen($file1,”r”) or die(“讀取失敗”);
$bytes = fread($stream,filesize($file1));
fclose($stream);
//第二個文件的讀取操作
$hd = fopen($file2,”r”);
$by = fread($hd,filesize($file2));
fclose($hd);
//圖片內容對比
if($bytes==$by){
echo”圖片相同”;
}else{
echo”圖片不相同”;
}
如何使用php生成唯一ID的4種方法
方法1
?php
$numbers = range (1,50);
//shuffle 將數組順序隨即打亂
shuffle ($numbers);
//array_slice 取該數組中的某一段
$num=6;
$result = array_slice($numbers,0,$num);
print_r($result);
?
方法二
?php
$numbers = range (1,20);
//播下隨機數發生器種子,可有可無,測試後對結果沒有影響
srand ((float)microtime()*1000000);
shuffle ($numbers);
//跳過list第一個值(保存的是索引)
while (list(, $number) = each ($numbers)) {
echo “$number “;
}
?
方法三
?php
function NoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end);
shuffle($rand_array);//調用現成的數組隨機排列函數
return array_slice($rand_array,0,$limit);//截取前$limit個
}
print_r(NoRand());
?
方法四
?php
$tmp=array();
while(count($tmp)5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?
方法五
?php
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?
都在這咯,希望可以幫到你
thinkphp怎麼生成唯一標識
1、md5(time() . mt_rand(1,1000000));
這種方法有一定的概率會出現重複
2、php內置函數uniqid()
uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID.
w3school參考手冊有一句話:”由於基於系統時間,通過該函數生成的 ID 不是最佳的。如需生成絕對唯一的 ID,請使用 md5() 函數”。
3、官方uniqid()參考手冊有用戶提供的方法,結果類似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}
public function create_guid($namespace = ”) {
static $guid = ”;
$uid = uniqid(“”, true);
$data = $namespace;
$data .= $_SERVER[‘REQUEST_TIME’];
$data .= $_SERVER[‘HTTP_USER_AGENT’];
$data .= $_SERVER[‘LOCAL_ADDR’];
$data .= $_SERVER[‘LOCAL_PORT’];
$data .= $_SERVER[‘REMOTE_ADDR’];
$data .= $_SERVER[‘REMOTE_PORT’];
$hash = strtoupper(hash(‘ripemd128’, $uid . $guid . md5($data)));
$guid = ‘{‘ .
substr($hash, 0, 8) .
‘-‘ .
substr($hash, 8, 4) .
‘-‘ .
substr($hash, 12, 4) .
‘-‘ .
substr($hash, 16, 4) .
‘-‘ .
substr($hash, 20, 12) .
‘}’;
return $guid;
}
php 如何獲取客戶端唯一標識
標識一個客戶端:
首先服務端就排除了,因為可以用多個用戶登錄。
然後看客戶端有什麼辦法,只能是採用客戶端存儲的方式
1、cookie 這個你排除了,可能是因為清除cookie比較容易操作。但這也是一種辦法。
2、客戶端的dom存儲,這個有一定的局限,只有新的瀏覽器支持。而且同樣可以刪除。
3、插件方式,這個需要客戶安裝,一般不可能,但可以利用比較流行的安裝率比較高的插件,例如flash,採用flash的本地存儲記錄。同樣可以刪除。
綜上,不可能完全的防止,但可以採用幾種技術的結合,這樣可以增加重複發布的難度。
但是還是那句話,是否重複發表信息是由用戶決定的。如果用戶認為重複發布的成本高於了解除這個限制的成本,那麼也就降低了用戶重複發布的幾率。
這個沒有完美的解決方案,只能是儘力。
php 如何獲取唯一身份訪問者,根據每一台電腦來獲得唯一的標識
需要準備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php。
2、在index.php中,輸入代碼:echo $_SERVER[‘REMOTE_ADDR’];。
3、瀏覽器運行index.php頁面,此時會打印出用戶的遠程地址。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257906.html