PHP でファイルへの相対パスまたは絶対パスを検索するツール
PHP中查找文件的相对路径或者绝对路径的工具
以前面试题目中有一题为求两个文件的相对路径,当时觉得没有电脑,书写代码太麻烦,没有做那个题目,今日工作比较闲遐,就想起这事来,完成了两个函数,代码未经过实际生产环境考验,如引用至生产环境,还请慎重阅读,主要是参考学习
查看源代码打印帮助
1 <?php 2 /** 3 * 文件的相对路径或者绝对路径查找工具 4 * 5 * @author 清源教育<support@tsingyuan.cn > 6 * @version $Id:v 1.0 ,2013/10/13 17:29:00 7 * @copyright (c) Copyright;tsingyuan,2013 8 */ 9 10 /** 11 * 返回文件的绝对路径 12 * 13 * @param string $filename 14 * @return string 15 */ 16 function absoluteroute($filename) 17 { 18 $split = '/\/|\\\/'; 19 $currentdir = preg_split($split, dirname(__FILE__)); 20 $dirarr = preg_split($split, $filename); 21 $diracount = count($dirarr); 22 $cda = count($currentdir); 23 if(strpos(PHP_OS, 'WIN') !== false) 24 $reg = '/\w\:/'; 25 else 26 $reg = '/\//'; 27 if(!preg_match($reg, $dirarr[0])) 28 { 29 foreach($dirarr as $nk=>$name) 30 { 31 if($name == "." || $name == '..') 32 { 33 if($name == '..') 34 $filenamearr = array_slice($currentdir, 0, -($nk+1)); 35 if($name == '.' && $nk == '0') 36 $filenamearr = array_slice($currentdir, 0); 37 } 38 else 39 { 40 $filenamearr[] = $name; 41 } 42 } 43 $filename = implode('/', $filenamearr); 44 } 45 return $filename; 46 } 47 48 /** 49 * 返回两个文件的相对路径 (PS:^_^不错的php学习交流群:276167802,验证:csl,有兴趣的话可以加入进来一起讨论) 50 * (为了保证输入的相对路径参数可用,故此函数依赖absoluteroute) 51 * 52 * @param string $filenamea 53 * @param string $filenameb 54 * @return string 55 */ 56 function relativeroute($filenamea, $filenameb) 57 { 58 $split = '/\/|\\\/'; 59 $filenamea = absoluteroute($filenamea); 60 $filenameb = absoluteroute($filenameb); 61 $dira =preg_split($split, $filenamea); 62 $dirb =preg_split($split, $filenameb); 63 $flag = true; 64 if(count($dira) >= count($dirb)) 65 { 66 $tmp = array(); 67 $tmp = $dira; 68 $dira = $dirb; 69 $dirb = $tmp; 70 $flag = false; 71 } 72 foreach($dira as $k=>$v) 73 if($v != $dirb[$k])break; 74 75 $dirr = array_slice($dirb, $k); 76 77 $k == 1 ? $dtag = '/' : $dtag = './'; 78 $result = $dtag.implode('/', $dirr); 79 if(!$flag) 80 { 81 if($dira[0] == '')array_shift($dira); 82 foreach($dirr as $kk=>&$v) 83 ($kk+1) != count($dirr)? 84 ($v ? 85 $v = '..' : 86 $v = '.' 87 ) : 88 $v = implode('/', array_slice($dira, $k)) ; 89 $result = $dtag.implode('/', $dirr); 90 } 91 return $result; 92 }
本文出自 “清源教育” 博客,转载请注明此处,谢谢!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。
