沈逸老师PHP魔鬼特训笔记(2),沈逸魔鬼_PHP教程
沈逸老师PHP魔鬼特训笔记(2),沈逸魔鬼
一、这一课会学习到几个懒人函数:
<span>1、file_put_contents</span>
(PHP 5, PHP 7)
file_put_contents — 将一个字符串写入文件
说明
int file_put_contents ( string$filename
, mixed $data
[, int $flags
= 0 [, resource $context
]] )
和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
If filename
does not exist, the file is created. Otherwise, the existing file is overwritten, unless the FILE_APPEND
flag is set.
参数
filename
-
要被写入数据的文件名。
data
-
要写入的数据。类型可以是 string,array 或者是 stream 资源(如上面所说的那样)。
如果
data
指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。参数
data
可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename, join('', $array))。 flags
-
flags
的值可以是 以下 flag 使用 OR (|) 运算符进行的组合。例如(源于PHP.net)
<?php<br />
$file = 'people.txt';
<br /> // Open the file to get existing content<br /> $current = file_get_contents($file);<br /> // Append a new person to the file<br /> $current .= "John Smith\n";<br /> // Write the contents back to the file<br />
file_put_contents($file, $current);
<br /> ?>
2、getcwd() //获取当前工作目录
PHP 4, PHP 5, PHP 7
getcwd — 取得当前工作目录
<strong>说明</strong>
取得当前工作目录。
返回值
成功则返回当前工作目录,失败返回 FALSE
。
在某些 Unix 的变种下,如果任何父目录没有设定可读或搜索模式,即使当前目录设定了,getcwd() 还是会返回 FALSE
。有关模式与权限的更多信息见 chmod()。
<span> 1</span> <span>例如:在ubuntu终端 </span><span>2</span> tiger@xz1024:~$ php -r "echo getcwd();" <span>3</span> /home/tigertiger@xz1024:~$
3、<span>substr</span>()
(PHP 4, PHP 5, PHP 7)
substr — 返回字符串的子串
说明
string substr ( string $string
, int $start
[, int $length
] )
返回字符串 string
由 start
和 length
参数指定的子字符串。
参数
string
-
输入字符串。必须至少有一个字符。
start
-
如果
start
是非负数,返回的字符串将从string
的start
位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。如果
start
是负数,返回的字符串将从string
结尾处向前数第start
个字符开始。如果
string
的长度小于start
,将返回FALSE
。Example #1 使用负数
start
<?php<br /> $rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"<br /> ?>length
如果提供了正数的
length
,返回的字符串将从start
处开始最多包括length
个字符(取决于string
的长度)。如果提供了负数的
length
,那么string
末尾处的许多字符将会被漏掉(若start
是负数则从字符串尾部算起)。如果start
不在这段文本中,那么将返回一个空字符串。如果提供了值为 0,
FALSE
或NULL
的length
,那么将返回一个空字符串。如果没有提供
length
,返回的子字符串将从start
位置开始直到字符串结尾。Example #2 使用负数
length
<?php<br /> $rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"<br /> ?>
二、定义个自定义函数
PHP定义函数
<span>function</span> 函数名(参数1,参数2,参数n) <span>//</span><span>必须有关键字funciton</span> <span>{ 函数体; }</span>
如果要return就ruturn.忘记return返回值,也无所谓。如果函数有返回值,那必须返回。
三、PHP7特性:
PHP7允许在函数中增加返回值。比如string、int、array、object等
function 函数名(): string //注意冒号
{
}
四、课程代码:
第一课我们建立了GOD这个文件,这一课,我们建立GOD_FUNC文件,通过reuqire在god文件中引入函数文件god_func。
同时,我们为了学习PHP7新特性,专门建立god_func7这个文件,并在god文件中判断引入。
1、god
<span>#</span><span>!/usr/local/php/bin/php</span> <?<span>php </span><span>require</span>('god_fun'.<span>substr</span>(<span>PHP_VERSION</span>,0,1<span>)); //判断PHP版本后引入不同的god_func </span><span>$result</span> =''<span>; </span><span>if</span>(<span>$argc</span> >=2<span> ) { </span>'-v'==<span>$argv</span>[1] && <span>$result</span> = 'god version is 1.0 '<span>; </span>'init' == <span>$argv</span>[1] && <span>$result</span> =<span> genConfig(); } </span><span>echo</span> <span>$result</span><span>; </span><span>echo</span> <span>PHP_EOL</span><span>; </span>?>
2、god_func
<?<span>php </span><span>function</span><span> genConfig() { </span><span>return</span> <span>file_put_contents</span>(<span>getcwd</span>().'/god.json','{}').' of bytes is written.'.<span>PHP_EOL</span>.'god config is created'<span>; } </span>?>
3、god_func7
<span>1</span> <?<span>php </span><span>2</span> <span>function</span> genConfig():<span>string</span> <span>3</span> <span> { </span><span>4</span> <span>return</span> <span>file_put_contents</span>(<span>getcwd</span>().'/god.json','{}').' of bytes is written.'.<span>PHP_EOL</span>.'god config is created'<span>; </span><span>5</span> <span>6</span> <span> } </span><span>7</span> ?>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

RESTAPI設計原則包括資源定義、URI設計、HTTP方法使用、狀態碼使用、版本控制和HATEOAS。 1.資源應使用名詞表示並保持層次結構。 2.HTTP方法應符合其語義,如GET用於獲取資源。 3.狀態碼應正確使用,如404表示資源不存在。 4.版本控制可通過URI或頭部實現。 5.HATEOAS通過響應中的鏈接引導客戶端操作。

匿名類在PHP中的主要作用是創建一次性使用的對象。 1.匿名類允許在代碼中直接定義沒有名字的類,適用於臨時需求。 2.它們可以繼承類或實現接口,增加靈活性。 3.使用時需注意性能和代碼可讀性,避免重複定義相同的匿名類。

在PHP中,異常處理通過try,catch,finally,和throw關鍵字實現。 1)try塊包圍可能拋出異常的代碼;2)catch塊處理異常;3)finally塊確保代碼始終執行;4)throw用於手動拋出異常。這些機制幫助提升代碼的健壯性和可維護性。

PHP中有四種主要錯誤類型:1.Notice:最輕微,不會中斷程序,如訪問未定義變量;2.Warning:比Notice嚴重,不會終止程序,如包含不存在文件;3.FatalError:最嚴重,會終止程序,如調用不存在函數;4.ParseError:語法錯誤,會阻止程序執行,如忘記添加結束標籤。

在PHP中,include,require,include_once,require_once的區別在於:1)include產生警告並繼續執行,2)require產生致命錯誤並停止執行,3)include_once和require_once防止重複包含。這些函數的選擇取決於文件的重要性和是否需要防止重複包含,合理使用可以提高代碼的可讀性和可維護性。

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。
