Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > main > by-pkgid > 0afeee9cca140e167a996902b9a677c5 > files > 60

php-manual-en-4.3.0-2mdk.noarch.rpm

<HTML
><HEAD
><TITLE
>Using remote files</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="PHP Manual"
HREF="index.html"><LINK
REL="UP"
TITLE="Features"
HREF="features.html"><LINK
REL="PREVIOUS"
TITLE="PUT method support"
HREF="features.file-upload.put-method.html"><LINK
REL="NEXT"
TITLE="Connection handling"
HREF="features.connection-handling.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=ISO-8859-1"></HEAD
><BODY
CLASS="chapter"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="features.file-upload.put-method.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="features.connection-handling.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="chapter"
><H1
><A
NAME="features.remote-files"
>Chapter 19. Using remote files</A
></H1
><P
>&#13;   As long as <TT
CLASS="parameter"
><I
>allow_url_fopen</I
></TT
> is enabled in
   <TT
CLASS="filename"
>php.ini</TT
>, you can use HTTP and FTP URLs with most of the functions
   that take a filename as a parameter.  In addition, URLs can be
   used with the <A
HREF="function.include.html"
><B
CLASS="function"
>include()</B
></A
>,
   <A
HREF="function.include-once.html"
><B
CLASS="function"
>include_once()</B
></A
>, <A
HREF="function.require.html"
><B
CLASS="function"
>require()</B
></A
> and
   <A
HREF="function.require-once.html"
><B
CLASS="function"
>require_once()</B
></A
> statements.
   See <A
HREF="wrappers.html"
>Appendix I</A
> for more information about the protocols
   supported by <TT
CLASS="literal"
>PHP</TT
>.
  </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
   In PHP 4.0.3 and older, in order to use URL wrappers, you were required
   to configure PHP using the configure option
   <TT
CLASS="option"
>--enable-url-fopen-wrapper</TT
>.
   </P
></BLOCKQUOTE
></DIV
><P
>&#13;   <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
     The Windows versions of <TT
CLASS="literal"
>PHP</TT
> earlier than PHP 4.3
     did not support remote file accessing for the following functions:
     <A
HREF="function.include.html"
><B
CLASS="function"
>include()</B
></A
>, <A
HREF="function.include-once.html"
><B
CLASS="function"
>include_once()</B
></A
>,
     <A
HREF="function.require.html"
><B
CLASS="function"
>require()</B
></A
>, <A
HREF="function.require-once.html"
><B
CLASS="function"
>require_once()</B
></A
>,
     and the imagecreatefromXXX functions in the <A
HREF="ref.image.html"
>Reference XLI, <I
>Image functions</I
></A
>
     extension.
    </P
></BLOCKQUOTE
></DIV
>
  </P
><P
>&#13;   For example, you can use this to open a file on a remote web server,
   parse the output for the data you want, and then use that data in a
   database query, or simply to output it in a style matching the rest
   of your website.
  </P
><P
>&#13;   <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN6010"
></A
><P
><B
>Example 19-1. Getting the title of a remote page</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="php"
>&#60;?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "&#60;p&#62;Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* This only works if the title and its tags are on one line */
    if (eregi ("&#60;title&#62;(.*)&#60;/title&#62;", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?&#62;</PRE
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
  </P
><P
>&#13;   You can also write to files on an FTP server (provided that you
   have connected as a user with the correct access rights). You
   can only create new files using this method; if you try to overwrite
   a file that already exists, the <A
HREF="function.fopen.html"
><B
CLASS="function"
>fopen()</B
></A
> call will
   fail.
  </P
><P
>&#13;   To connect as a user other than 'anonymous', you need to specify
   the username (and possibly password) within the URL, such as
   'ftp://user:password@ftp.example.com/path/to/file'. (You can use the
   same sort of syntax to access files via HTTP when they require Basic
   authentication.)
  </P
><P
>&#13;   <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN6017"
></A
><P
><B
>Example 19-2. Storing data on a remote server</B
></P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
CELLPADDING="5"
><TR
><TD
><PRE
CLASS="php"
>&#60;?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "&#60;p&#62;Unable to open remote file for writing.\n";
    exit;
}
/* Write the data here. */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?&#62;</PRE
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
>
  </P
><P
>&#13;   <DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>Note: </B
>
     You might get the idea from the example above that you can use
     this technique to write to a remote log file. Unfortunately
     that would not work because the <A
HREF="function.fopen.html"
><B
CLASS="function"
>fopen()</B
></A
> call will
     fail if the remote file already exists. To do distributed logging
     like that, you should take a look at <A
HREF="function.syslog.html"
><B
CLASS="function"
>syslog()</B
></A
>.
    </P
></BLOCKQUOTE
></DIV
>
  </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="features.file-upload.put-method.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="features.connection-handling.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>PUT method support</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="features.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Connection handling</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>