Maison  >  Article  >  php教程  >  Exemple d'accès à des fichiers distants via la fonction fopen() en PHP

Exemple d'accès à des fichiers distants via la fonction fopen() en PHP

高洛峰
高洛峰original
2016-12-21 15:50:571890parcourir

L'utilisation de PHP permet non seulement aux utilisateurs d'accéder aux fichiers côté serveur via le navigateur, mais également d'accéder aux fichiers sur d'autres serveurs via des protocoles tels que HTTP ou FTP. Les URL HTTP et FTP peuvent être utilisées dans la plupart des fonctions qui nécessitent des noms de fichiers comme paramètres. . pour remplacer le nom du fichier. Utilisez la fonction fopen() pour lier le nom de fichier et la ressource spécifiés à un flux. Si le nom de fichier est au format "scheme://...", il est traité comme une URL et PHP recherchera le. processeur de protocole (également appelé protocole d’encapsulation) pour gérer ce mode.

Si vous avez besoin d'accéder aux fichiers à distance, vous devez activer l'option "allow_url_fopen" dans le fichier de configuration PHP pour utiliser la fonction fopen() pour ouvrir le fichier distant. Il est également nécessaire de déterminer si les fichiers des autres serveurs disposent d'autorisations d'accès. Si le protocole HTTP est utilisé pour se connecter au fichier distant, celui-ci ne peut être ouvert qu'en mode « lecture seule ». Si le serveur FTP distant auquel il faut accéder dispose d'une "autorisation d'écriture" activée pour l'utilisateur fourni, alors lorsque vous utilisez le protocole FTP pour vous connecter au fichier distant, vous pouvez utiliser le mode "écriture seule" ou "lecture seule". pour ouvrir le fichier. Mais vous ne pouvez pas utiliser le mode "Lisible et inscriptible".

Utiliser PHP pour accéder à des fichiers distants revient à accéder à des fichiers locaux. Par exemple, vous pouvez utiliser l'exemple suivant pour ouvrir un fichier sur. un serveur Web distant. , analysez les données de sortie dont nous avons besoin, puis utilisez ces données dans la récupération de la base de données, ou affichez-les simplement dans un style correspondant au reste du contenu du site Web :

<?php
//通过http打开远程文件
$file = fopen(http://www.php.cn, "r") or die("打开远程文件失败!!");
while (!feof($file)){
    $line = fgets($file,1024);     //每读取一行
//如果找到远程文件中的标题标记则取出标题,并退出循环,不在读取文件
    if (preg_match("/<titile>(.*/)<\/title>",$line,$out)){     //使用正则匹配标题标记
        $title = $out[1];     //将标题标记中的标题字符取出
        break;     //退出循环,结束远程文件读取
    }
}
 
fclose($file);
echo $title;
?>
Si vous disposez de droits d'accès légaux, vous pouvez établir une connexion avec un serveur FTP en tant qu'utilisateur, afin de pouvoir écrire dans les fichiers du serveur FTP. Vous pouvez utiliser cette technologie pour stocker des fichiers journaux distants, mais cela ne peut être que le cas. utilisé. Cette méthode est utilisée pour créer un nouveau fichier. Si vous essayez d'écraser un fichier existant, l'appel à la fonction fopen() échouera et vous devrez vous connecter au serveur avec un nom d'utilisateur autre qu'anonyme. besoin de préciser le nom d'utilisateur (ou même le mot de passe). Par exemple "ftp://user:password@ftp.lampbrother.net/path/to/file". Le code est le suivant :

Pour éviter les erreurs de délai d'attente lors de l'accès à l'hôte distant, vous pouvez utiliser la fonction set_time_limit() pour limiter la durée d'exécution du programme
<?php
    //在ftp.lampbrother.net的远程服务器上创建文件,以写的模式打开
    file = fopen("ftp://user:password@ftp.lapbrother.net/path/to/file", "w");
    //将一个字符串写入到远程文件中去
    fwrite($file, "Linux+Apache+MySQL+PHP");
 
    fclose($file);
?>

Pour plus d'articles sur l'accès aux fichiers distants via la fonction fopen() en PHP. , veuillez suivre le site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn