File: misc.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (1033 lines) | stat: -rw-r--r-- 35,573 bytes parent folder | download
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.26 $ -->
 <reference id="ref.misc">
  <title>その他の関数</title>
  <titleabbrev>その他</titleabbrev>

  <partintro>
   <para>
    他のカテゴリには当てはまらない関数群を、こちらに収録しています。
   </para>
  </partintro>

  <refentry id="function.connection-aborted">
   <refnamediv>
    <refname>connection_aborted</refname>
    <refpurpose>
     クライアントとの接続が断となった場合に&true;を返す
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>connection_aborted</methodname>
      <void/>
     </methodsynopsis>
    <simpara>
     クライアントとの接続が断となった場合に&true;を返します。
     詳細な説明に関しては、<link linkend="features">機能 </link>に関する章の
     <link linkend="features.connection-handling">接続処理</link>
     に関する記述を参照下さい。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.connection-status">
   <refnamediv>
    <refname>connection_status</refname>
    <refpurpose>接続ステータスのビットフィールドを返す</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>connection_status</methodname>
      <void/>
     </methodsynopsis>
    <simpara>
     接続ステータスのビットフィールドを返します。
     詳細な説明に関しては、<link linkend="features">機能 </link>に関す
     る章の<link linkend="features.connection-handling">接続処理
     </link>に関する記述を参照下さい。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.connection-timeout">
   <refnamediv>
    <refname>connection_timeout</refname>
    <refpurpose>スクリプトがタイムアウトした場合に&true;を返す</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>connection_timeout</methodname>
      <void/>
     </methodsynopsis>
    <simpara>
     スクリプトがタイムアウトした場合に&true;を返します。
    </simpara>
    <warning>
     <title>過去の関数</title>
     <simpara>
      この関数は、過去のものであり、4.0.5以降には存在しません。
     </simpara>
    </warning>
    <simpara>
     詳細な説明に関しては、<link linkend="features">機能 </link>に関す
     る章の<link linkend="features.connection-handling">接続処理
     </link>に関する記述を参照下さい。
    </simpara>
   </refsect1>
  </refentry>
 
  <refentry id="function.constant">
   <refnamediv>
    <refname>constant</refname>
    <refpurpose>定数の値を返す</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>mixed</type><methodname>constant</methodname>
      <methodparam><type>string</type><parameter>name</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>constant</function> は、<parameter>name</parameter>で指
     定した定数の値を返します。
    </simpara>
    <simpara>
     <function>constant</function> はある定数の値を取得する必要がある
     が、その名前が不明な場合に有用です。これは、定数が変数に保存され
     ているか、関数により返されるかの場合です。
    </simpara>
    <para>
     <example>
      <title><function>constant</function> の例</title>
      <programlisting role="php">
<![CDATA[
<?php

define ("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // 前の行と動作は同じ

?>
]]>
      </programlisting>
     </example>
    </para>
    <para>
     <function>define</function>,
     <function>defined</function>,
     <function>constant</function> および <link
      linkend="language.constants">定数</link> の節を参照下さい。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.define">
   <refnamediv>
    <refname>define</refname>
    <refpurpose>名前を指定して定数を定義する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>define</methodname>
      <methodparam><type>string</type><parameter>name</parameter></methodparam>
      <methodparam><type>mixed</type><parameter>value</parameter></methodparam>
      <methodparam><type>bool</type><parameter>
	<replaceable><optional>case_insensitive</optional></replaceable>
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     名前を指定して定数を定義します。詳細は、
     <link linkend="language.constants">定数の節</link>を参照下さい。
    </para>
    <para>
     定数の名前は <parameter>name</parameter> により指定され、
     値は <parameter>value</parameter> により指定されます。
    </para>
    <para>
     オプションの第3のパラメータ
     <parameter>case_insensitive</parameter>も使用可能です。値
     <constant>TRUE</constant> が指定された場合、定数は大文字小文字を
     区別しなくなります。デフォルトの動作は、大文字小文字を区別します。
     例えば、CONSTANT と Constant は異なった値を表します。
    </para>
    <para>
     <example>
      <title>定数の定義</title>
      <programlisting role="php">
<![CDATA[
<?php
define ("CONSTANT", "Hello world.");
echo CONSTANT; // "Hello world."を出力します。
echo Constant; // "Constant"を出力し、警告が発生します。

define ("GREETING", "Hello you.",TRUE);
echo GREETING; // "Hello you."を出力
echo Greeting; // "Hello you."を出力

?>
]]>
      </programlisting>
     </example>
    </para>
    <para>
     <function>define</function> は成功時に&true;、エラー発生時に
     &false;を返します。
    </para>
    <para>
     <function>defined</function>,
     <function>constant</function> および 
     <link linkend="language.constants">定数</link>の節も参照下さい。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.defined">
   <refnamediv>
    <refname>defined</refname>
    <refpurpose>
     指定した名前の定数が存在するかどうかを調べる
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>defined</methodname>
      <methodparam><type>string</type><parameter>name</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>name</parameter> で指定した名前の定数が定義されている
     場合に&true;、その他の場合に&false;を返します。
     <example>
      <title>定数のチェック</title>
      <programlisting role="php">
<![CDATA[
<?php
if (defined("CONSTANT")){ // 引用符で括られている必要があります
    echo CONSTANT; //
    }
?>
]]>
      </programlisting>
     </example>
    </para>
    <para>
     <function>define</function>,
     <function>constant</function> および
     <link linkend="language.constants">定数</link> の節も参照下さい。
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.die">
   <refnamediv>
    <refname>die</refname>
    <refpurpose><function>exit</function>のエイリアス</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
    <para>
     この関数は<function>exit</function>のエイリアスです。
    </para>
   </refsect1>
  </refentry>
 
  <refentry id="function.eval">
   <refnamediv>
    <refname>eval</refname>
    <refpurpose>文字列をPHPコードとして評価する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>mixed</type><methodname>eval</methodname>
      <methodparam><type>string</type><parameter>code_str</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>eval</function> は、<parameter>code_str</parameter> 
     で与えられた文字列を PHP コードとして評価します。
     中でも、データベースのテキストフィールドにコードを保存し、
     後で実行するためには便利です。
    </simpara>
    <simpara>
     <function>eval</function> を使用する際、注意するべき点が
     いくつかあります。
     パーサーが <function>eval</function>の処理中に落ちないように、
     渡す文字列はセミコロンで文が終了するといった有効なPHPコード
     である必要があります。また、<parameter>code_str</parameter> の
     中の文字を適切にエスケープする必要があります。
    </simpara>
    <simpara>
     <function>eval</function>の中で値を与えた変数は、
     この後、メインスクリプトの中でもこれらの値を維持することも
     覚えておいて下さい。
    </simpara>
    <simpara>
     <literal>return</literal> 文は、文字列の評価をただちに終了します。
     PHP4では、<function>eval</function>関数は &false;を返します。さも
     なくば、結果の値を返すために<literal>return</literal>を使用するこ
     とが可能です。一方、PHP3では、<function>eval</function>の型は
     <literal>void</literal>であり、値を何も返しません。
    </simpara>
    <para>
     <example>
      <title>
       <function>eval</function>の例 - 簡単なテキストのマージ
      </title>
      <programlisting role="php">
<![CDATA[
<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.<br>';
echo $str;
eval ("\$str = \"$str\";");
echo $str;
?>
]]>
      </programlisting>
      <para>
       上の例は、以下を表示します。
       <screen>
<![CDATA[
This is a $string with my $name in it.
This is a cup with my coffee in it.
]]>
       </screen>
      </para>
     </example>
    </para>
     &tip.ob-capture;
   </refsect1>
  </refentry>

  <refentry id="function.exit">
   <refnamediv>
    <refname>exit</refname>
    <refpurpose>メッセージを出力し、カレントのスクリプトを終了する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>void</type><methodname>exit</methodname>
      <methodparam choice="opt"><type>string</type><parameter>status</parameter></methodparam>
     </methodsynopsis>
    <note>
     <simpara>
      この関数は実際には関数ではなく言語構造です。
     </simpara>
    </note>
    <simpara>
     <function>exit</function> 関数は、スクリプトの実行を終了します。
     終了直前に<parameter>status</parameter>を出力します。
    </simpara>
    <simpara>
     <parameter>status</parameter>が<type>integer</type>の場合、その値
     も終了ステータスとして使用されます。
    </simpara>
    <note>
     <simpara>
      カレントのCVS版は、<type>integer</type>の場合、
      <parameter>status</parameter>を出力しません。
     </simpara>
    </note>
    <note>
     <simpara>
      関数<function>die</function>は、<function>exit</function>のエイ
      リアスです。
     </simpara>
    </note>
    <para>
     <example>
      <title><function>exit</function>の例</title>
      <programlisting role="php">
<![CDATA[
<?php

$filename = '/path/to/data-file';
$file = fopen ($filename, 'r')
    or exit("unable to open file ($filename)");

?>
]]>
      </programlisting>
      <!-- TODO: example with integer exit-statis -->
     </example>
    </para>
   </refsect1>
  </refentry> 

  <refentry id="function.get-browser">
   <refnamediv>
    <refname>get_browser</refname>
    <refpurpose>
     ユーザのブラウザの機能を取得する
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>object</type><methodname>get_browser</methodname>
      <methodparam><type>string</type><parameter>
	<replaceable><optional>user_agent</optional></replaceable>
       </parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>get_browser</function> は、ユーザーのブラウザの機能を定
     義します。これは、<filename>browscap.ini</filename>ファイルのブラ
     ウザ情報を調べることにより行います。デフォルトでは、
     $HTTP_USER_AGENTの値が使用されます。しかし、オプションの
     <parameter>user_agent</parameter> パラメータを
     <function>get_browser</function> に渡すことにより、これを変える
     (すなわち、他のブラウザの情報を調べる)ことが可能です。
    </simpara>
    <simpara>
     返される情報はオブジェクトであり、例えば、ブラウザのメジャーおよ
     びマイナーバージョン暗号やID文字列、といった様々なデータ要素を含
     んでいます。フレーム、JavaScript、クッキー等のような機能に関する
     &true;/false の値、マイナーバージョン暗号やID文字列、といった様々な
     データ要素を含んでいます。
    </simpara>
    <simpara>
     <filename>browscap.ini</filename> は多くのブラウザに関する情報を
     有していますが、データベースを最新に保つのはユーザーによる更新
     に依存しています。
     ファイルのフォーマット自体を見ればおおよそのことがわかります。
    </simpara>
    <para>
     次の例では、ユーザーのブラウザに関する全ての取得可能な情報
     の一覧を作成する手法に関するものです。
     <example>
      <title><function>get_browser</function>の例</title>
      <programlisting role="php">
<![CDATA[
<?php
function list_array ($array) {
    while (list ($key, $value) = each ($array)) {
    $str .= "<b>$key:</b> $value<br>\n";
    }
    return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array ((array) $browser);
?>
]]>
      </programlisting>
     </example>
    </para>
    <simpara>
     上のスクリプトの出力は、次のようになります。
    </simpara>
    <programlisting>
<![CDATA[
Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)<hr>
<b>browser_name_pattern:</b> Mozilla/4\.5.*<br>
<b>parent:</b> Netscape 4.0<br>
<b>platform:</b> Unknown<br>
<b>majorver:</b> 4<br>
<b>minorver:</b> 5<br>
<b>browser:</b> Netscape<br>
<b>version:</b> 4<br>
<b>frames:</b> 1<br>
<b>tables:</b> 1<br>
<b>cookies:</b> 1<br>
<b>backgroundsounds:</b> <br>
<b>vbscript:</b> <br>
<b>javascript:</b> 1<br>
<b>javaapplets:</b> 1<br>
<b>activexcontrols:</b> <br>
<b>beta:</b> <br>
<b>crawler:</b> <br>
<b>authenticodeupdate:</b> <br>
<b>msn:</b> <br>
]]>
    </programlisting>
    <simpara>
     これを動作させるためには、設定ファイルの
     <link linkend="ini.sect.browscap">browscap</link> を正しく
     <filename>browscap.ini</filename> の場所に設定しておく必要があります。
    </simpara>
    <simpara>
     (<filename>browscap.ini</filename> ファイルを取得できる場所を含む)
     より詳細な情報については、
     <ulink url="&url.php.faq;">&url.php.faq;</ulink>にあるPHP FAQを参照下さい。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.highlight-file">
   <refnamediv>
    <refname>highlight_file</refname>
    <refpurpose>ファイルの構文ハイライト表示</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>highlight_file</methodname>
      <methodparam><type>string</type><parameter>filename</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     関数 <function>highlight_file</function>は、
     <parameter>filename</parameter>の中のコードをPHP組込の構文ハイラ
     イタで定義されたカラーを使用して構文ハイライト表示したものを出力
     します。この関数は、成功時に&true;、その他の場合に&false;を返します。
     (PHP 4)
    </simpara>
    <note>
     <simpara>
      関数 <function>show_source</function> および
      <function>highlight_file</function>を使用する場合には、パスワー
      ドや潜在的なセキュリティ上の危険を生む類の他の情報のような重要な
      情報を不注意で公開してしまわないように注意する必要があります。
     </simpara>
    </note>
    <para>
     <example>
      <title>URLのソースハイライト表示の作成</title>
      <simpara>
       引数として指定したスクリプトのコードをハイライト表示できるよう
       なURLを設定する際には、適したURLパターンを生成するためにApache
       の &quot;ForceType&quot; ディレクティブを使用し、見栄えの良いコー
       ドリストを表示するために関数<function>highlight_file</function>
       を使用します。
      </simpara>
      <simpara>
       httpd.confに次のような記述を追加します。
      </simpara>
      <para>
       <informalexample>
	<programlisting>
<![CDATA[
<Location /source>
    ForceType application/x-httpd-php
</Location>
]]>
	</programlisting>
       </informalexample>
      </para>
      <simpara>
       そして、"source"という名前のファイルを作成し、それをWebのルート
       ディレクトリに置きます。
      </simpara>
      <para>
       <programlisting role="php">
<![CDATA[
<HTML>
<HEAD>
<TITLE>Source Display</TITLE>
</HEAD>
<BODY BGCOLOR="white">
<?php
    $script = getenv ("PATH_TRANSLATED");
    if(!$script) {
    echo "<BR><B>ERROR: Script Name needed</B><BR>";
    } else {
    if (ereg("(\.php|\.inc)$",$script)) {
    echo "<H1>Source of: $PATH_INFO</H1>\n<HR>\n";
    highlight_file($script);
    } else {
    echo "<H1>ERROR: Only PHP or include script names are allowed</H1>"; 
    }
    }
    echo "<HR>Processed: ".date("Y/M/d H:i:s",time());
?>
</BODY>
</HTML>
]]>
       </programlisting>
      </para>
      <simpara>
       これにより、"/path/to/script.php"にあるスクリプトのカラー表示を
       表示するために以下のURLを使用することができるようになります。
      </simpara>
      <para>
       <informalexample>
    <programlisting>
http://your.server.com/source/path/to/script.php
    </programlisting>
       </informalexample>
      </para>
     </example>
    </para>
     &tip.ob-capture;
    <simpara>
     <function>highlight_string</function>,
     <function>show_source</function>も参照下さい。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.highlight-string">
   <refnamediv>
    <refname>highlight_string</refname>
    <refpurpose>文字列の構文ハイライト化</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>highlight_string</methodname>
      <methodparam><type>string</type><parameter>str</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>highlight_string</function> 関数は、PHP組込みの構文ハイ
     ライタで定義されたカラーを使用して<parameter>str</parameter>を構
     文ハイライト表示されたものを出力します。
     &return.success;
    </simpara>
     &tip.ob-capture;
    <simpara>
     <function>highlight_file</function>,
     <function>show_source</function>も参照下さい。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.ignore-user-abort">
   <refnamediv>
    <refname>ignore_user_abort</refname>
    <refpurpose>
     クライアント接続が断となった時にスクリプトの実行を中断するかどう
     かを設定する
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>int</type><methodname>ignore_user_abort</methodname>
      <methodparam><type>int</type><parameter>
	<replaceable><optional>setting</optional></replaceable>
       </parameter></methodparam>
     </methodsynopsis>
    <simpara>
     この関数は、クライアントとの接続断がスクリプトの実行中断を引き起
     こすかどうかを設定します。この関数は前の設定を返し、現在の設定を
     変えずに現在の設定を返すためだけのために引数なしでコールすること
     が可能です。PHPにおける接続処理の詳細な説明に関しては、機能の章の
     接続処理の節を参照下さい。
    </simpara>
   </refsect1>
  </refentry>
 
  <refentry id="function.iptcparse">
   <refnamediv>
    <refname>iptcparse</refname>
    <refpurpose>
     バイナリIPTC<ulink url="&url.iptc;">&url.iptc;</ulink>
     ブロックを処理しシングルタグにする
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>array</type><methodname>iptcparse</methodname>
      <methodparam><type>string</type><parameter>iptcblock</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     この関数は、バイナリIPTCブロックを処理し、シングルタグにします。
     tagmakerをインデックス、valueを値とした配列を返します。
     エラーの場合またはIPTCデータが見つからない場合、&false;を返します。
     例については<function>GetImageSize</function>を参照下さい。
    </simpara>
   </refsect1>
  </refentry>
 
  <refentry id="function.leak">
   <refnamediv>
    <refname>leak</refname>
    <refpurpose>メモリーをリークする</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>void</type><methodname>leak</methodname>
      <methodparam><type>int</type><parameter>bytes</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>leak</function> は、指定した量のメモリーをリークします。
    </simpara>
    <simpara>
     この関数は、各リクエストが完了した時に "リークした" メモリーを自動的に
     取り除くメモリーマネージャをデバッグする際に便利です。
    </simpara>
   </refsect1>
  </refentry>
 
  <refentry id="function.pack">
   <refnamediv>
    <refname>pack</refname>
    <refpurpose>データをバイナリ文字列にパックする</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>string</type><methodname>pack</methodname>
      <methodparam><type>string</type><parameter>format</parameter></methodparam>
      <methodparam><type>mixed</type><parameter>
	<replaceable><optional>args</optional></replaceable>
       </parameter></methodparam>
     </methodsynopsis>
    <para>
     指定された引数を <parameter>format</parameter> に基づいて
     バイナリ文字列にパックします。データを含むバイナリ文字列を返します。
    </para>
    <para>
     この関数のアイデアは、Perlからのものであり、フォーマット指定用?ü
     ャoPerlと全く同様に動作します。
     フォーマット文字列は、フォーマットコードの後にオプションの
     反復指定用引数が続いている形式となっています。
     反復指定用引数は、整数値または入力データの最後まで反復を指定する
     * のどちらかを指定することができます。 
     a, A, h, H の場合、反復数はそのデータ引数が取得する文字の数
     を指定します。
     反復数が @ の場合、次のデータを置く場所の絶対位置を表します。
     その他の場合、反復数はデータ引数が使われる数を指定し、
     結果のバイナリ文字列にパックされます。
     現在、実装されているものを以下に示します。
     <itemizedlist>
      <listitem>
       <simpara>
	a NUL で埋めた文字列
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	A 空白で埋めた文字列
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	h 16進文字列, 下位バイトが先
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	H 16進文字列, 上位バイトが先
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	c signed char
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	C unsigned char
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	s signed short (常に 16 ビット、マシンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	S unsigned short (常に 16 ビット、マシンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	n unsigned short (常に 16 ビット、ビッ°インディアンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	v unsigned short (常に 16 ビット、リトルインディアンオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	i signed integer (サイズおよびバイトオーダーはマシンに依存)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	I unsigned integer (サイズおよびバイトオーダーはマシンに依存)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	l signed long (常に 32 ビット、マシンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	L unsigned long (常に 32 ビット、マシンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	N unsigned long (常に 32 ビット、ビッグインディアンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	V unsigned long (常に 32 ビット、リトルインディアンバイトオーダー)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	f float (サイズおよび表現はマシン依存)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	d double (サイズおよび表現はマシン依存)
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	x NUL バイト
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	X 1バイト戻る
       </simpara>
      </listitem>
      <listitem>
       <simpara>
	@ 絶対位置まで NUL で埋める
       </simpara>
      </listitem>
     </itemizedlist>
      <example>
      <title>フォーマット文字列のパック</title>
      <programlisting role="php">
<![CDATA[
$binarydata = pack ("nvc*", 0x1234, 0x5678, 65, 66);
]]>
      </programlisting>
      <para>
       この結果のバイナリ文字列は、6バイト長であり、
       バイト列 0x12, 0x34, 0x78, 0x56, 0x41, 0x42となります。
      </para>
     </example>
    </para>
    <para>
     符号付及び符号無しの区別は関数 <function>unpack</function>にのみ
     影響を与え、関数<function>pack</function>は符号付及び符号無しの
     フォーマットコードに関して同じ結果を与えるということに注意して下
     さい。
    </para>
    <para>
     PHP は内部的に値をマシン依存の大きさの符号付の
     <type>integer</type>値として保持することにも注意して下さい。
     このように保持するには大きすぎる符号無しの値を与えた場合、
     <type>float</type>に変換する際にしばしば期待外れの結果となります。
    </para>
   </refsect1>
  </refentry>
  
  <refentry id="function.show-source">
   <refnamediv>
    <refname>show_source</refname>
    <refpurpose>ファイルの構文ハイライト表示</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>bool</type><methodname>show_source</methodname>
      <methodparam><type>string</type><parameter>filename</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>show_source</function>関数は、組込みのPHP用構文ハイライ
     ト表示用に定義された色を使用して<parameter>filename</parameter>の
     構文ハイライト表示を出力します。
     成功時に&true;、そうでない場合に&false;を返します。(PHP 4)
    </simpara>
    <simpara>
     この関数は、関数<function>highlight_file</function>のエイリアスで
     す。
    </simpara>
    <note>
     <simpara>
      関数 <function>show_source</function> および
      <function>highlight_file</function>を使用する場合には、パスワー
      ドや潜在的なセキュリティ上の危険を生む類の他の情報のような重要な
      情報を不注意で公開してしまわないように注意する必要があります。
     </simpara>
    </note>
    <simpara>
     <function>highlight_string</function>,
     <function>highlight_file</function>も参照下さい。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.sleep">
   <refnamediv>
    <refname>sleep</refname>
    <refpurpose>実行を遅延させる</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>void</type><methodname>sleep</methodname>
      <methodparam><type>int</type><parameter>seconds</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     関数<function>sleep</function>は、<parameter>seconds</parameter>
     で与えられた秒数分プログラムの実行を遅延させます。
    </simpara>
    <simpara>
     <function>usleep</function> も参照のこと。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.uniqid">
   <refnamediv>
    <refname>uniqid</refname>
    <refpurpose>ユニークなIDを生成する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>string</type><methodname>uniqid</methodname>
      <methodparam><type>string</type><parameter>prefix</parameter></methodparam>
      <methodparam><type>bool</type><parameter>
	<replaceable><optional>lcg</optional></replaceable>
       </parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>uniqid</function>は、ミリ秒単位の現在時刻に基づき先頭辞
     (prefix)を付けたユニークなIDを返します。いくつかのホスト上で同
     時にIDを生成させる場合、全く同じミリ秒のIDが生成されるのを防ぐの
     にprefixが有用です。<parameter>prefix</parameter>には114文字まで
     の長さを指定することができます。
    </simpara>
    <simpara>
     オプションの <parameter>lcg</parameter> パラメータが &true; の場合、
     <function>uniqid</function> は、より結果をユニークにするために
     "combined LCG" を返り値の最後に追加します。
    </simpara>
    <simpara>
     <parameter>prefix</parameter> を空とした場合、返される文字列の長さは、
     13文字となります。<parameter>lcg</parameter> が&true;の場合は、
     23文字となります。
    </simpara>
    <note>
     <simpara>
      <parameter>lcg</parameter> パラメータは、PHP 4またはPHP 3.0.13以
      降でのみ使用可能です。
     </simpara>
    </note>
    <para>
     ユニークなIDまたはトークンが必要な場合、そして、ネットワーク経由
     でユーザーにそのトークンを渡そうとする場合(例えば、セッションクッ
     キー)、次の例のようにするのが推奨されます。
     <informalexample>
      <programlisting role="php">
<![CDATA[
$token = md5(uniqid("")); // ランダム要素なし
$better_token = md5(uniqid(rand(),1)); // 推測が困難であり、より優れている。
]]>
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     この例は、極めて予測困難な 32 文字のID(128ビット16進数)を
     作成します。
    </simpara>
   </refsect1>
  </refentry>

  <refentry id="function.unpack">
   <refnamediv>
    <refname>unpack</refname>
    <refpurpose>バイナリ文字列からデータを切出します</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>array</type><methodname>unpack</methodname>
      <methodparam><type>string</type><parameter>format</parameter></methodparam>
      <methodparam><type>string</type><parameter>data</parameter></methodparam>
     </methodsynopsis>
    <para>
     <parameter>format</parameter>に基づきバイナリ文字列から配列に分解
     します。バイナリ文字列の切出された要素を保持する配列を返します。
    </para>
    <para>
     <function>unpack</function>の動作はPerlとわずかに異なり、
     切出されたデータは連想配列に保存されます。
     実行する際には、別のフォーマットコードとし、スラッシュ/で
     区切る必要があります。
     <example>
      <title>フォーマット文字列の<function>unpack</function></title>
      <programlisting role="php">
<![CDATA[
$array = unpack ("c2chars/nint", $binarydata);
]]>
      </programlisting>
      <para>
       結果の配列は、エントリ "chars1","chars2","int" を保持します。
      </para>
     </example>
    </para>
    <para>
     フォーマットコードに関する説明は、
     <function>pack</function> も参照下さい。
    </para>
    <para>
     PHP は内部的に整数を符号付で保持します。
     大きな値の unsigned long を切出した場合、PHP の内部で保持された値は、
     同じ大きさの符号付き整数となり、符号無しを指定して切出された場合でも
     結果は負の数となります。
    </para>
   </refsect1>
  </refentry>
 
  <refentry id="function.usleep">
   <refnamediv>
    <refname>usleep</refname>
    <refpurpose>マイクロ秒単位で実行を遅延する</refpurpose>
   </refnamediv>
   <refsect1>
    <title>説明</title>
     <methodsynopsis>
      <type>void</type><methodname>usleep</methodname>
      <methodparam><type>int</type><parameter>micro_seconds</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>usleep</function>関数は、指定した
     <parameter>micro_seconds</parameter>の時間だけプログラムの実行を
     遅延させます。
    </simpara>
    <simpara>
     <function>sleep</function>も参照下さい。
    </simpara>
    <note>
     <simpara>
      この関数はWindowsシステムでは動作しません。
     </simpara>
    </note>
   </refsect1>
  </refentry>

 </reference>

<!-- 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:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->