1. php 模擬 post 提交的方法有哪些?
第一種 : file_get_content 模擬 post
第二種 : curl 模擬 post
第三種 : socket 模擬 post
2. 用 php 打印出 2016-05-26 09:31:07 的 Unix 時間戳
$time = "2016-05-26 09:31:07";
$unixtime = strtotime($time);
3. php 獲取客戶端 IP 的方法
echo $_SERVER["REMOTE_ADDR"];
4. 用 php 實現 302 跳轉到 http://www.qq.com
302 是臨時重定向的意思 , 表示被訪問頁面因爲各種需要被臨時跳轉到其他頁面
header(Location:http://www.qq.com); exit;
5. 匹配郵箱的正則表達式
$email = $_POST["email"];
$pattern = "/([\w\-]+\@[\w\-]+\.[\w\-]+)/";
if (!preg_match($pattern ,$email)) {
$emailErr = "郵箱格式不正確!";
}
6. 如何處理 php 服務的 500 錯誤?
找到 php的配置文件 /etc/php.ini
配置參數值:display_errors = On
error_reporting = E_ALL | E_STRICT
重啓apache 服務 service httpd restart
這個時候 瀏覽器已經可以輸出錯誤信息了。
需要再配置下 apache /etc/httpd/conf/httpd.conf
在 apache的配置文件最後添加 兩行:
php_flag display_errors on
php_value error_reporting 2039
重啓apache。
對php.ini 中參數的設置 也可用在php代碼中完成。
調用:調用ini_set()函數
//開啓php.ini中的display_errors指令
ini_set('display_errors',1);
//通過error_reporting()函數設置,輸出所有級別的錯誤報告
error_reporting(E_ALL);
這樣可用動態的,在指定的php文件中,輸出錯誤。
7. 幾個常用的 php 字符串函數
implode : 將一個一維數組的值轉化爲字符串
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
explode : 使用一個字符串分割另一個字符串 , 返回一個數組
$pizza = "piece1,piece2,piece3,piece4,piece5,piece6";
$pieces = explode(",", $pizza);
str_repeat : echo str_repeat("=", 10); ==========
str_replace :
str_replace("a", "apple", "I like eat apple."); I like eapplet applepple.
str_split :
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
Array( [0] => H [1] => e [2] => l [3] => l [4] => o [5] => [6] => F [7] => r [8] => i [9] => e [10] => n [11] => d ) Array ( [0] => Hel [1] => lo [2] => Fri [3] => end )
strpos : $mystring = 'abc'; $findme = 'a'; $pos = strpos($mystring, $findme); 結果爲 0
判斷 $mystring 中是否包含有 $findme , 有則返回位置, 無則返回 false
注意 : 判斷的時候要用 === 例如:
if ($pos === false) 如果不用 === , 返回位置爲 0 ,會判斷結果等於false
strlen : 需要計算長度的字符串。
$str = 'abcdef'; echo strlen($str); // 6
$str = ' ab cd '; echo strlen($str); // 7
strtolower :
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
echo $str; //mary had a little lamb and she loved it so
strtoupper : $str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; //MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
strtotime : 將任何英文文本的日期時間描述解析爲 Unix 時間戳
substr :
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"
8. 常用的 php 數組函數
array_combine : 創建一個數組,用一個數組的值作爲其鍵名,另一個數組的值作爲其值
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
Array ( [green] => avocado [red] => apple [yellow] => banana )
array_column : 返回數組中指定的一列
array_keys : 返回數組中部分的或所有的鍵名
array_values : 返回數組中所有的值
array_merge : 合併一個或多個數組
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
Array ( [color] => green [0] => 2 [1] => 4 [2] => a [3] => b [shape] => trapezoid [4] => 4 )
array_push : 將一個或多個單元壓入數組的末尾(入棧)
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )
array_rand : 返回數組中的隨機鍵名
$a=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); print_r(array_rand($a,2));
Array ( [0] => a [1] => c )
array_slice :
1. $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,2));
從數組的第三個元素開始取出,並返回數組中的其餘元素:
Array ( [0] => blue [1] => yellow [2] => brown )
2. $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,1,2));
從數組的第二個元素開始取出,並僅返回兩個元素:
Array ( [0] => green [1] => blue )
3. $a=array("red","green","blue","yellow","brown"); print_r(array_slice($a,-2,1));
Array ( [0] => yellow )
array_sum : 返回數組中所有值的和
$a=array("a"=>52.2,"b"=>13.7,"c"=>0.9); echo array_sum($a); 66.8
9. php寫文件的方法有哪些?
一 . 語法:fwrite(file,string,length)
- <span style="font-size:18px;">
- <?php
- header("Content-Type:text/html;Charset=utf-8");
- $file_path="test.css";
- if(file_exists($file_path)){
- //如果是追加內容,則使用a+ append
- //如果是全新的寫入到文件 ,則使用 w+ write
- $fp=fopen($file_path,"a+");
- $con="\r\n你好!";
- for($i=0;$i<10;$i++){
- fwrite($fp,$con);
- }
- echo "添加ok";
- fclose($fp);
- }else{
- echo "文件不存在!";
- }
- ?>
- </span>
二 . file_put_contents()
- <span style="font-size:18px;">
- <?php
- header("Content-Type:text/html;Charset=utf-8");
- $file_path="test.txt";
- $con="北京你好!\r\n";
- for($i=0;$i<10;$i++){
- $con.="北京你好!\r\n";
- }
- //請不要循環的使用該函數 。
- file_put_contents($file_path,$con,FILE_APPEND); //fopen fwrite fclose
- echo "ok";
- ?>
- </span>
10. file_get_contents('php://input') 是什麼意思?
獲取遠程內容
php://input 是個可以訪問請求的原始數據的只讀流。
11. 優化 mysql 數據庫的方法有哪些 (重點看 9-16 條)
1、創建索引
2、複合索引
3、索引不會包含有NULL值的列
4、使用短索引
5、排序的索引問題
6、like語句操作
7、不要在列上進行運算
8、不使用NOT IN和<>操作
9. 選取最適用的字段屬性
10. 使用連接(JOIN)來代替子查詢(Sub-Queries)
11. 使用聯合(UNION)來代替手動創建的臨時表
12. 事務
13. 鎖定表
14. 使用外鍵
15. 使用索引
16. 優化的查詢語句
12. 簡述 mysql 多表關聯查詢的方式和區別
13. memcache , redis 分別支持哪些數據類型
memcache : Memcached僅支持簡單的key-value結構的數據
redis :
1. string 2. hash 3. list 4. set 5. sort set 6. transaction
14 . git 和 svn 有何不同?
1. git 是分佈式 , svn 是集中式
2. git 把內容按元數據方式存儲 , 而 svn 是按文件
3. git 分支和 svn 的分支不同
4. git 沒有一個全局的版本號 , 而 svn 有
5. git 的內容完整性要優於 svn
GIT的內容存儲使用的是SHA-1哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞