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
|
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- EN-Revision: 1.12 Maintainer: luk Status: ready -->
<chapter id="features.remote-files">
<title>Pouit vzdlench soubor</title>
<para>
Pokud pi konfiguraci PHP aktivujete podporu "URL fopen wrapper"
(standardn je zapnut, ledae pro configure explicitn zadte
<option>--disable-url-fopen-wrapper</option> pznak (verze do 4.0.3),
nebo (u novjch verz) nastavte <parameter>allow_url_fopen</parameter> v
php.ini na off), mete ve volnch vtiny funkc, kter oekvaj
jako argument nzev souboru (vetn <function>require</function> a
<function>include</function>) uvst HTTP nebo FTP URL.
</para>
<para>
<note>
<para>
Na Windows nelze pouvat vzdlen soubory v
<function>include</function> a <function>require</function> vrazech.
</para>
</note>
</para>
<para>
Mete napklad otevt soubor na vzdlenm web serveru, vyseparovat z
vstupu data, kter potebujete, a tato data potom pout v dotazu na
databzi, nebo je prost zalenit do vstupu stylem odpovdajcm zbytku
va web site.
</para>
<para>
<example>
<title>Zskn nzvu vzdlen strnky</title>
<programlisting role="php">
<![CDATA[
<?php
$file = fopen ("http://www.php.net/", "r");
if (!$file) {
echo "<p>Nelze otevt vzdlen soubor.\n";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* Toto bude fungovat pouze pokud jsou tagy a nzev na jedn dce */
if (eregi ("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>
]]>
</programlisting>
</example>
</para>
<para>
Pokud se pipojte jako uivatel s dostatenmi prvy, a dan soubor u
neexistuje, mete data tak ukldat po FTP. Pokud se chcete pipojit jako
jin uivatel ne 'anonymous', muste v URL udat uivatelsk jmno (a
pravdpodobn i heslo), nap.
'ftp://uzivatel:heslo@ftp.example.com/path/to/file'. (Pro pstup k souborm
pes HTTP, kter vyaduj Basic authentication, mete pout stejnou
syntaxi.)
</para>
<para>
<example>
<title>Uloen dat na vzdlenm serveru</title>
<programlisting role="php">
<![CDATA[
<?php
$file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
echo "<p>Nelze otevt vzdlen soubor pro zpis.\n";
exit;
}
/* Zapeme data. */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>
]]>
</programlisting>
</example>
</para>
<para>
<note>
<para>
Z ve uvedenho pkladu by vs mohlo napadnout vyut tuto techniku k
zpisu do vzdlenho logu, ale jak u bylo zmnno ve, pomoc URL fopen()
wrapperu mete zapisovat pouze do novho souboru. Pokud mte zjem o
distribuovan logovn, podvejte se na <function>syslog</function>.
</para>
</note>
</para>
</chapter>
<!-- 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:
-->
|