php獲取方法名
『壹』 php 怎麼獲取當前函數名稱
使用__FUNCTION__
function test()
{
echo __FUNCTION__; // test
}
test();
『貳』 PHP-php怎樣自動獲取被調用的類名
(PHP 4, PHP 5)
get_class -- 返回對象的類名
說明
編輯
string get_class ( [object obj] )
返回對象實例 obj 所屬類的名字。如果 obj 不是一個對象則返回 FALSE。
注: 在 PHP 擴展庫中定義的類返回其原始定義的名字。在 PHP 4 中 get_class() 返回用戶定義的類名的小寫形式,但是在 PHP 5 中將返回類名定義時的名字,如同擴展庫中的類名一樣。
注: 自 PHP 5 起,如果在對象的方法中調用則 obj 為可選項。
<?php
classfoo{
functionfoo()
{
//implementssomelogic
}
functionname()
{
echo"Mynameis",get_class($this)," ";
}
}
//createanobject
$bar=newfoo();
//externalcall
echo"Itsnameis",get_class($bar)," ";
//internalcall
$bar->name();
?>
輸出:
Its name is foo
My name is foo
『叄』 PHP 獲取域名的幾種方法
獲取當前的域名:
echo $_SERVER['SERVER_NAME'];
//獲取來源網址,即點擊來到本頁的上頁網址
echo $_SERVER["HTTP_REFERER"];
$_SERVER['REQUEST_URI'];//獲取當前域名的後綴
$_SERVER['HTTP_HOST'];//獲取當前域名
dirname(__FILE__);//獲取當前文件的物理路徑
dirname(__FILE__)."/../";//獲取當前文件的上一級物理路徑
?>
『肆』 php獲取post參數的幾種方式是什麼
方法1、最常見的方法是:$_POST['fieldname'];
說明:只能接收Content-Type: application/x-www-form-urlencoded提交的數據
解釋:也就是表單POST過來的數據
方法2、file_get_contents(「php://input」);
說明:
允許讀取 POST 的原始數據。
和 $HTTP_RAW_POST_DATA 比起來,它給內存帶來的壓力較小,並且不需要任何特殊的 php.ini 設置。
php://input 不能用於 enctype=」multipart/form-data」。
解釋:
對於未指定 Content-Type 的POST數據,則可以使用file_get_contents(「php://input」);來獲取原始數據。
事實上,用PHP接收POST的任何數據都可以使用本方法。而不用考慮Content-Type,包括二進制文件流也可以。
所以用方法二是最保險的方法。
方法3、$GLOBALS['HTTP_RAW_POST_DATA'];
說明:
總是產生 $HTTP_RAW_POST_DATA 變數包含有原始的 POST 數據。
此變數僅在碰到未識別 MIME 類型的數據時產生。
$HTTP_RAW_POST_DATA 對於 enctype=」multipart/form-data」 表單數據不可用
如果post過來的數據不是PHP能夠識別的,可以用 $GLOBALS['HTTP_RAW_POST_DATA']來接收,
比如 text/xml 或者 soap 等等
解釋:
$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST過來的原始數據。
$_POST或$_REQUEST存放的是 PHP以key=>value的形式格式化以後的數據。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST過來的數據取決於centent-Type的設置,即POST數據時 必須顯式示指明Content-Type: application/x-www-form-urlencoded,POST的數據才會存放到 $GLOBALS['HTTP_RAW_POST_DATA']中。
『伍』 php涓鏍規嵁綾誨悕鎬庝箞鍔ㄦ佽幏鍙栧凡瀹氫箟鐨勭被瀵硅薄騫跺姩鎬佽皟鐢ㄦ煇涓鏂規硶錛
鍦 PHP 涓錛屽彲浠ラ氳繃綾誨悕鏉ュ姩鎬佽幏鍙栧凡瀹氫箟鐨勭被瀵硅薄錛岀劧鍚庡啀璋冪敤綾葷殑鏂規硶銆傚彲浠ヤ嬌鐢ㄤ互涓嬩袱涓鍑芥暟鏉ュ疄鐜幫細
1. `class_exists()` 鍑芥暟鍙浠ュ垽鏂涓涓綾繪槸鍚﹀凡緇忓畾涔夈
2. `call_user_func()` 鍑芥暟鍙浠ュ姩鎬佽皟鐢ㄤ竴涓鏂規硶銆
涓嬮潰鏄紺轟緥浠g爜錛
```
// 鍒ゆ柇綾繪槸鍚﹀凡瀹氫箟
if (class_exists('ClassName')) {
// 瀹炰緥鍖栫被瀵硅薄
$obj = new ClassName();
// 鍔ㄦ佽皟鐢ㄦ柟娉
call_user_func(array($obj, 'methodName'));
}
```
鍦ㄨ繖涓紺轟緥涓錛宍ClassName` 鏄瑕佸姩鎬佽幏鍙栫殑綾誨悕錛宍methodName` 鏄瑕佽皟鐢ㄧ殑鏂規硶鍚嶃傞栧厛錛屼嬌鐢 `class_exists()` 鍑芥暟鍒ゆ柇綾繪槸鍚﹀凡緇忓畾涔夛紝濡傛灉宸茬粡瀹氫箟錛屽垯浣跨敤 `new` 鍏抽敭瀛楀疄渚嬪熀鍨嬪寲綾誨硅薄錛屽苟灝嗗叾璧嬫悘縐熺寽鍊肩粰 `$obj` 鍙橀噺銆傜劧鍚庯紝浣跨敤 `call_user_func()` 鍑芥暟鍔ㄦ佽皟鐢ㄦ柟娉曘俙array($obj, 'methodName')` 琛ㄧず瑕佽皟鐢 `$obj` 瀵硅薄鐨 `methodName()` 鏂規硶銆
闇瑕佹敞鎰忕殑鏄錛屽傛灉瑕佽皟鐢ㄧ殑鏂規硶闇瑕佷紶閫掑弬鏁幫紝鍙浠ュ湪 `call_user_func()` 鍑芥暟鐨勭浜屼釜鍙傛暟涔嬪悗渚濇℃坊鍔犲弬鏁板箋備緥濡傦紝濡傛灉瑕佷紶閫掍竴涓鍙傛暟錛屽彲浠ヨ繖鏍峰瀷瀚岃皟鐢錛
```
call_user_func(array($obj, 'methodName'), $param1);
```
鍏朵腑錛宍$param1` 鏄瑕佷紶閫掔殑鍙傛暟鍊箋
『陸』 thinkphp3.2 怎麼獲取當前類名
__FUNCTION__ 函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
__CLASS__ 類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。
__METHOD__ 類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。
註:這些常量前後均是兩個下劃線。
get_class(class name);//取得當前語句所在類的類名
get_class_methods(class name);//取得class name 類的所有的方法名,並且組成一個數組
get_class_vars(class name);//取得class name 類的所有的變亮名,並組成一個數組
『柒』 thinkphp5 怎麼獲取當前的模塊,控制器和方法名
問題解析:
thinkphp5系列需要獲取當前的模塊、控制器以及方法名稱,可以使用自帶的Request類,也可以使用request助手函數。接下來舉例說明:
假設我們現在訪問的地址是index/member/add,我們來獲取這個地址的模塊、控制器、方法名稱
1、獲取模塊名:
echo"當前模塊名稱是:".request()->mole();
輸出結果:
『捌』 用PHP獲取鏈接及圖片路徑的方法
<?php
$str="Thisisatest.Thisisatest.Thisisa<ahref=http://link1.com><imgsrc=http://img1.jpg/></a>test.Thisisatest.Thisisatest. ".
"Thisisatest.Thisisatest.<ahref=http://link2.com><imgsrc=http://img2.jpg/></a>Thisisatest.Thisisatest.Thisisatest. ".
"<ahref=http://link3.com><imgsrc=http://img3.jpg/></a>";
$regex='/<as+href=(.*)s*><imgs+src=(.*)s*/></a>/';
$output=array();
if(preg_match_all($regex,$str,$matches)!==false){
if(isset($matches[1])&&isset($matches[2])){
$links=$matches[1];
$imgs=$matches[2];
foreach($linksas$key=>$link){
$img=isset($imgs[$key])?$imgs[$key]:'';
$output[]="<ahref="{$link}"><imgsrc="{$img}"/></a>";
}
}
}
var_mp($output);
『玖』 php獲取網頁源碼內容有哪些辦法
1、使用file_get_contents獲得網頁源代碼。這個方法最常用,只需要兩行代碼即可,非常簡單方便。
2、使用fopen獲得網頁源代碼。這個方法用的人也不少,不過代碼有點多。
3、使用curl獲得網頁源代碼。使用curl獲得網頁源代碼的做法,往往是需要更高要求的人使用,例如當你需要在抓取網頁內容的同時,得到網頁header信息,還有ENCODING編碼的使,USERAGENT的使用等等。