-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathrealpath.xml
166 lines (158 loc) · 4.73 KB
/
realpath.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0c9c2dd669fe9395eaa73d487fbd160f9057429a Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<refentry xml:id="function.realpath" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>realpath</refname>
<refpurpose>正規化された絶対パス名を返す</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>realpath</methodname>
<methodparam><type>string</type><parameter>path</parameter></methodparam>
</methodsynopsis>
<para>
<function>realpath</function> は、
入力 <parameter>path</parameter> のシンボリックリンクをすべて展開し、
<literal>/./</literal>、<literal>/../</literal> および <literal>/</literal>
などの参照をすべて解決することにより、正規化された絶対パスを返します。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>path</parameter></term>
<listitem>
<para>
調べたいパス。
</para>
<note>
<para>
path の指定は必須ですが、空の文字列を指定することもできます。
その場合はカレントディレクトリを指定したものとみなします。
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
成功した場合は、正規化された絶対パス名を返します。
返されるパスはシンボリックリンク、<literal>/./</literal> および <literal>/../</literal>
要素を含みません。
パスの末尾の区切り文字 (<literal>\</literal> や <literal>/</literal> など) は削除されます。
</para>
<para>
<function>realpath</function> は、
たとえばファイルが存在しないなどの失敗時に &false; を返します。
</para>
<note>
<para>
指定した階層にあるすべてのディレクトリに対して、
実行中のスクリプトからの実行権限が必要です。もし権限がなければ
<function>realpath</function> は &false; を返します。
</para>
</note>
<note>
<para>
大文字小文字を区別しないファイルシステムの場合は、<function>realpath</function>
が大文字小文字をどちらかにそろえるかもしれないし、そろえないかもしれません。
</para>
</note>
<note>
<para>
<function>realpath</function> 関数は、Phar の内部にあるファイルに対しては機能しません。
そのようなパスは、実際のパスではなく仮想パスになるからです。
</para>
</note>
<note>
<para>
Windows では、ディレクトリへのシンボリックリンクとジャンクションは、ひとつ分しか展開されません。
</para>
</note>
&fs.file.32bit;
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>realpath</function> の例</title>
<programlisting role="php">
<![CDATA[
<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;
echo realpath('/tmp/') . PHP_EOL;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
/etc/passwd
/tmp
]]>
</screen>
</example>
<example>
<title>Windows 上での <function>realpath</function></title>
<para>
Windows 上で <function>realpath</function>
を実行すると、Unix 形式のパスを Windows 形式に変更します。
</para>
<programlisting role="php">
<![CDATA[
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
C:\WINDOWS\System32
C:\Program Files
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>basename</function></member>
<member><function>dirname</function></member>
<member><function>pathinfo</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->