【PHP】面試題整理PHP部分
PHP
語句include和require都能把另一個檔案包含到當前檔案中,它們的區別是?為了多次包含同一檔案,可以用什麼語句替代它們?
include引入不存在,會報warning
require引入不存在,會報fatal error
_once如果之前已經引用過,就不會重複引用,如果沒有加_once,重複引用就會出現致命錯誤
include_once之前需要檢查是否有引用,所以不如include效率高
規範編碼下,推薦include
能夠實現防止SQL隱碼攻擊的函式或方式?
mysql
- 過濾輸入和轉義輸出
- mysql_real_escape_string( )
- 使用支援引數化查詢語句和佔位符的資料庫操作類(如PEAR::DB, PDO等)
- magic_quotes_gpc選項開啟
- PDO
- MYSQLi
哪些方式能將網頁上的圖片(http://xxxx.com/xx.jpg)儲存到本地電腦硬碟?
ob
ob_start();//開啟輸出
readfile($url);//輸出圖片檔案
$img = ob_get_contents();//得到瀏覽器輸出
ob_end_clean();//清除輸出並關閉
$size = strlen($img);//得到圖片大小
$fp2 = @fopen($filename, "a");
fwrite($fp2, $img);//向當前目錄寫入圖片檔案,並重新命名
fclose($fp2);
return $filename;//返回新的檔名
file_get_contents
$img = file_get_contents(`http://www.baidu.com/img/baidu_logo.gif`);
file_put_contents(`1.gif`,$img);
echo `<img src="1.gif">`;
下面程式碼的輸出結果(static的理解)?
<?php
function add()
{
static $num =1;
$num ++;
return $num ;
}
$a = add() + add() + add() ;
echo $a;
結果是9。
2 + 3 + 4 = 9
靜態變數。
程式碼實現,交換$a
和$b
的值,不引用第三方變數。
//字串版本 結合使用substr,strlen兩個方法實現
$a="a";
$b="b";
echo `交換前 $a:`.$a.`,$b:`.$b.`<br />`;
$a.=$b;
$b=substr($a,0,(strlen($a)-strlen($b)));
$a=substr($a, strlen($b));
echo `交換後$a:`.$a.`,$b:`.$b.`<br />`;
echo `-----------------------<br/>`;
//字串版本 使用str_replace方法實現
$a="a";
$b="b";
echo `交換前 $a:`.$a.`,$b:`.$b.`<br />`;
$a.=$b;
$b=str_replace($b, "", $a);
$a=str_replace($b, "", $a);
echo `交換後$a:`.$a.`,$b:`.$b.`<br />`;
echo `-----------------------<br/>`;
//字串版本 結合使用list方法和array實現
$a="a";
$b="b";
echo `交換前 $a:`.$a.`,$b:`.$b.`<br />`;
list($b,$a)=array($a,$b);
echo `交換後$a:`.$a.`,$b:`.$b.`<br />`;
echo `-----------------------<br/>`;
//字串和數字都適用 使用異或運算
$a=`a`;
$b=`b`;
echo `交換前 $a:`.$a.`,$b:`.$b.`<br />`;
$a=$a^$b;
$b=$b^$a;
$a=$a^$b;
echo `交換後$a:`.$a.`,$b:`.$b.`<br />`;
echo `-----------------------<br/>`;
//只適用於數字
$a=3;
$b=5;
echo `交換前 $a:`.$a.`,$b:`.$b.`<br />`;
$a=$a+$b;
$b=$a-$b;
$a=$a-$b;
echo `交換後$a:`.$a.`,$b:`.$b.`<br />`;
寫一個類,實現單例
單例模式有以下3個特點:
1.只能有一個例項。
2.必須自行建立這個例項。
3.必須給其他物件提供這一例項。
class C
{
protected static $_instance = null;
protected function __construct()
{
}
protected function __clone()
{
//disallow clone
}
public function getInstance()
{
if (static::$_instance === null) {
static::$_instance = new static;
}
return static::$_instance;
}
}
class D extends C
{
protected static $_instance = null;
}
$c = C::getInstance();
$d = D::getInstance();
var_dump($c === $d);
寫一段程式碼,實現列印/var/www/html
的目錄結構
$current_dir = opendir($path); //opendir()返回一個目錄控制程式碼,失敗返回false
while(($file = readdir($current_dir)) !== false) { //readdir()返回開啟目錄控制程式碼中的一個條目
$sub_dir = $path . DIRECTORY_SEPARATOR . $file; //構建子目錄路徑
if($file == `.` || $file == `..`) {
continue;
}else if(is_dir($sub_dir)) { //如果是目錄,進行遞迴
echo `Directory ` . $file . `:
`; //如果是資料夾,輸出資料夾名稱
traverse($sub_dir); //巢狀遍歷子資料夾
}else{ //如果是檔案,直接輸出路徑和檔名
echo `File in Directory ` . $path . `/` . $file .`
`;
}
}
}
相關文章
- PHP面試整理PHP面試
- php面試題之一——PHP核心技術(高階部分)PHP面試題
- php面試考點整理PHP面試
- php面試簡單整理PHP面試
- 面試題整理—CSS部分面試題CSS
- PHP 面試題PHP面試題
- PHP面試題PHP面試題
- php-util - 整理了部分常用php方法, composer安裝PHP
- php面試題之五——MySQL資料庫(基礎部分)PHP面試題MySql資料庫
- PHP面試試題PHP面試
- PHP面試題收集PHP面試題
- PHP 面試知識點整理歸納PHP面試
- 自己整理的php面試知識點PHP面試
- 2020PHP面試題大全【物件導向部分】PHP面試題物件
- 我的PHP面試題PHP面試題
- PHP面試題總結PHP面試題
- php演算法面試題PHP演算法面試題
- PHP面試問題總結PHP面試
- PHP常見面試題大全PHP面試題
- 2021-PHP面試題大全[PHP基礎]-最近在面試PHP面試題
- php $_server 整理PHPServer
- 搞定PHP面試 - HTTP協議知識點整理PHP面試HTTP協議
- PHP 個人面試題總結PHP面試題
- 大公司的PHP面試題PHP面試題
- PHP引用的一個面試題PHP面試題
- PHP程式設計師面試題PHP程式設計師面試題
- 搞定PHP面試 - 正規表示式知識點整理PHP面試
- PHP5.5 ~ PHP7.2 新特性整理PHP
- PHP經典面試題,有答案哦PHP面試題
- 分享一個PHP面試題總結PHP面試題
- PHP 高階工程面試題彙總PHP面試題
- 最新PHP面試題彙總(附答案)PHP面試題
- PHP面試01PHP面試
- PHP面試合集PHP面試
- PHP面試(三)PHP面試
- PHP檔案包含 整理PHP
- 常見的 PHP 面試題和答案分享PHP面試題
- PHP面試題總結-持續更新中PHP面試題