<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[PHP的dirname函数用法,外加basename的用法,pathinfo用法。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 11 Aug 2008 01:37:59 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<textarea name="code" class="php" rows="15" cols="100">
PHP 中有一个函数 `dirname` 可以用来获取指定路径的目录部分，类似于 shell 中的 `dirname` 命令。你可以使用这个函数来简化你的代码，如下所示：

```php
$relativePath = &quot;004脆弱性报告整改建议书1013/整改建议书/xxx平台整改建议书.doc&quot;;

// 使用 dirname 获取目标部分的路径
$targetPartPath = dirname(dirname($relativePath));
$targetPart = basename($targetPartPath);

echo $targetPart;
```

在这个示例中，我们首先使用 `dirname` 函数获取到 `004脆弱性报告整改建议书1013/整改建议书` 部分的路径，然后使用 `basename` 函数来获取目标部分的名称。

这样，你就可以更简单地获取目标部分，而不需要手动计算斜杠的位置。



PHP 中没有类似 Shell 的 `mkdir -p` 的直接命令，但你可以使用递归的方式来创建多层目录，就像 `-p` 选项的效果一样。

你可以使用 PHP 的 `mkdir` 函数，并设置递归参数为 `true`，以便创建多层目录，如下所示：

```php
$directoryPath = &quot;004脆弱性报告整改建议书1013/整改建议书&quot;;
$success = mkdir($directoryPath, 0777, true);

if ($success) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;目录创建成功&quot;;
&#125; else &#123;
&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;目录创建失败&quot;;
&#125;
```

在这个示例中，`mkdir` 函数的第三个参数设置为 `true`，表示创建多层目录。如果目录已经存在，它不会引发错误。如果目录创建成功，`$success` 变量将为 `true`。如果创建失败，它将为 `false`。
</textarea><br/><br/><br/>在写Php上传时，nginx上传模块nginx_upload_module时把文件移到自己想要的目录会用到：http://jackxiang.com/post/6221/<br/>但后来根本不用这个，<br/><textarea name="code" class="php" rows="15" cols="100">
$params[&#039;upload_file_sessionid&#039;] = pathinfo($params[&#039;upload_file_path&#039;], PATHINFO_BASENAME);
pathinfo($params[&#039;upload_file_name&#039;], PATHINFO_EXTENSION)
</textarea><br/><textarea name="code" class="php" rows="15" cols="100"> 
&lt;?php
echo __FILE__;//获取文件名 和c++ printf(&quot;FILE=%s,LINE=%d&#92;n&quot;,__FILE__,__LINE__);
echo &quot;&#92;n&quot;;
echo dirname(__FILE__);//dirname. 取得路径中的目录名
echo basename(__FILE__);//basename取得该文件的路径，可以多次调，也就是嵌套
?&gt;
</textarea><br/><br/>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br/>2013-04-09：<br/>Rango-韩天峰(3507499**)&nbsp;&nbsp;17:40:30<br/>现在PHP5.3提供了__DIR__常量了，以前还要写 dirname(__FILE__)<br/>回忆未来-向东-Jàck(3726476**)&nbsp;&nbsp;17:42:11<br/>我是想获取一个变量里的dir，rango说的能使。？<br/>Rango-韩天峰(3507499**)&nbsp;&nbsp;17:42:22<br/>能啊<br/>这个只是字符串分析的函数，不会去读文件系统<br/><br/>我们知道PHP中提供了一个魔术常量(magic constant)__FILE__，用来指向当前执行的PHP脚本。但PHP没有直接提供该脚本所在目录的常量。也就是说如果我们要得到当前PHP脚本所在的目录，需要使用dirname()这个函数：<br/><br/>&lt;?php<br/><br/>$dir = dirname(__FILE__);<br/><br/>?&gt;<br/><br/>在PHP5.3中，增加了一个新的常量__DIR__，指向当前执行的PHP脚本所在的目录。<br/><br/>例如当前执行的PHP文件为 /www/website/index.php<br/><br/>则__FILE__等于&#039;/www/website/index.php&#039;<br/><br/>而__DIR__等于&#039;/www/website&#039;<br/><br/>现在我们要包含当前文件目录或子目录下的文件，可以直接使用：<br/><br/>&lt;?php<br/><br/>require_once __DIR__ . &#039;/path/to/test.inc.php&#039;;<br/>?&gt;<br/><br/>http://www.phpeye.com/article/view/id/149/<br/><br/><br/>例子 1<br/>&lt;?php<br/>print_r(pathinfo(&quot;/testweb/test.txt&quot;));<br/>?&gt;<br/>输出：<br/>Array<br/>(<br/>[dirname] =&gt; /testweb<br/>[basename] =&gt; test.txt<br/>[extension] =&gt; txt<br/>)<br/>例子 2<br/>&lt;?php<br/>print_r(pathinfo(&quot;/testweb/test.txt&quot;,PATHINFO_BASENAME));<br/>?&gt;<br/>输出：<br/>test.txt<br/><br/>在实际的运用中是这样的：<br/><textarea name="code" class="php" rows="15" cols="100">
&lt;?php
&nbsp;&nbsp;&nbsp;&nbsp;$path_info = pathinfo(&quot;/upload/video/user/.20130410223139569564.JPG&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;print_r($path_info);
&nbsp;&nbsp;&nbsp;&nbsp;$file_ext = strtolower($path_info[&#039;extension&#039;]);
&nbsp;&nbsp;&nbsp;&nbsp;echo $file_ext;
</textarea><br/>调试PHP输出:<br/>Array<br/>(<br/>&nbsp;&nbsp;&nbsp;&nbsp;[dirname] =&gt; /upload/video/user<br/>&nbsp;&nbsp;&nbsp;&nbsp;[basename] =&gt; .20130410223139569564.JPG<br/>&nbsp;&nbsp;&nbsp;&nbsp;[extension] =&gt; JPG<br/>&nbsp;&nbsp;&nbsp;&nbsp;[filename] =&gt; .20130410223139569564<br/>)<br/>jpg<br/>输出完成 (耗时 0 秒) - 正常终止<br/>———————————————————————————————————————————————————<br/>再次使用的方法备案（找到以xx.php.mine结果的文件并且删除掉： rm -Rf /xxx/xx.*）Add By:2014-01-03：<br/><textarea name="code" class="php" rows="15" cols="100">
$fileInfoArr = pathinfo($this-&gt;_fileName);
$fileArr = explode(&quot;.&quot;,$fileInfoArr[&quot;filename&quot;]);
$delVagueFilesComand = &quot;rm -Rf &quot;.$fileInfoArr[&quot;dirname&quot;].&quot;/&quot;.$fileArr[0].&quot;.*&quot;;
popen($delVagueFilesComand,&quot;r&quot;);
</textarea>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] PHP的dirname函数用法,外加basename的用法,pathinfo用法。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>