php 字符串查找替換 PHP如何解決跨域訪問的問題?
PHP如何解決跨域訪問的問題?PHP解決的辦法跨域問題有多種,比較普遍的有如下幾種:1、可以使用JSONP協(xié)議這是用來ltscriptgtlt/scriptgt標簽來利用的,示例不勝感激:PHP代碼:
PHP如何解決跨域訪問的問題?
PHP解決的辦法跨域問題有多種,比較普遍的有如下幾種:
1、可以使用JSONP協(xié)議這是用來ltscriptgtlt/scriptgt標簽來利用的,示例不勝感激:
PHP代碼:
HTML代碼
這借用了ltscriptgtlt/scriptgt標簽的兩個特性,一是支持什么跨域,二是也可以先執(zhí)行JS代碼。
2、同域名下的PHP后端程序,利用全局函數(shù)其他域名下的程序服務器是不存在跨域問題的,所以,這個可以讓客戶端程序,先ftp連接本域名下的PHP程序,然后再讓PHP程序通過服務器各位第三方程序。這樣又是可以不能解決跨域協(xié)作問題的。
3、是從PHP后端程序改Header信息,使瀏覽器支持跨域
跨域協(xié)同問題主要是JS會出現(xiàn)的問題,但是我們也可以用php控制輸出頭信息來解決JS跨域問題。
1、不允許所有域名訪問
lt?php
header(Access-Control-Allow-Origin:*)
2、允許重新指定域名()訪問
lt?php
header()
這個通常是和權限配置查找
如何使用PHP生成隨機字符串?
引言我們每天都很可能會用到邀請碼,郵件驗證碼,或是必須不使用unique字符串標志用戶屬性的情況。
今天我們且先不說神妙的“全局真正ID”的生成方案,我們說一個最簡單,如何生成氣體一個真正的,任務道具的,數(shù)組字母組成的字符串。
學時間PHP有一個內置函數(shù)uniqid,用于化合一個唯一的ID。該函數(shù)結構形式:
stringuniqid([string$prefix[,bool$more_entropyfalse]])
應用于某些一個帶前綴、基于組件當前時間微秒數(shù)的任何ID。
只不過該方法所能生成的ID并不是安全的,且依賴于本機的時間戳,有可能在同一微秒生成同一ID。因為安全起見,需要添加上prefix參數(shù),以示區(qū)別。
more_entropy參數(shù)使生成的ID更唯一性,要是設置中為TRUE,uniqid()會在返回的字符串結尾增強額外的煽(建議使用combinedlinearcongruentialgenerator)。
這就就夠嗎?這肯定也不是最優(yōu)的解決方法。我們接觸其他解決方案??梢允褂胦penssl給他的加密性和唯一性。
bin2hex(openssl_random_pseudo_bytes($tobytes))
在用openssl_random_pseudo_tobytes函數(shù)化合一個偽隨機字符串的字節(jié),后再可以使用bin2hex將其格式化為十六進制的字符串。
能生成的偽隨機字節(jié),其字節(jié)數(shù)由length參數(shù)確定。還下達命令有無在用了加密功能強的算法來生成偽隨機字節(jié),并通過可選的crypto_strongparameter來不能執(zhí)行此操作??扇绱朔椒ㄇ巴膮?shù),大多情況下會再次出現(xiàn)false。
美中不足的是,這樣的話生成的數(shù)字字符串,只在[0-9][a-z]之間,不夠應用范圍。我們嘗試支撐加固這個生成方法,加強其魯棒性。
上述事項函數(shù)會生成沉淀一個區(qū)間位于[$min,$max]的洗技能數(shù)字。后再全局函數(shù)該函數(shù)化合更改長度的字符串。
函數(shù)crypto_rand_secure函數(shù)的利用方法,在PHP標準函數(shù)中,可以不可以使用rand/mt_rand函數(shù)其它的東西。
在PHP7中,系統(tǒng)可以提供了更合適的函數(shù),可以替代crypto_rand_secure建議使用,那是random_bytes和random_int。在用內置函數(shù),我們將getToken函數(shù)改造不勝感激:
當然沒少的測試結果,我們改大小化合一些32位長度的字符串。
寫在最后本文深入討論了能生成洗技能數(shù)字,由此生成沉淀指定長度的字符串,實現(xiàn)函數(shù)并通過了測試。大家可以在機器環(huán)境并且測試。
everydaycoding:_)
我是@程序員小助手,短短彼此分享編程知識,歡迎關注。