Вы не можете писать в HTTP, используя file_put_contents()
.
Из документации file_put_contents()
:
URL может использоваться как имя файла с этой функцией, если включены обертки fopen . Смотрите fopen() для более подробной информации о том, как указать имя файла. См. Поддерживаемые протоколы и оболочки для ссылок на информацию о возможностях, которые имеют различные оболочки, примечания об их использовании и информацию о любых предопределенных переменных, которые они могут предоставить.
И из описания PHP протокола HTTP (выделено мое):
Разрешает доступ только для чтения к файлам / ресурсам через HTTP 1.0, используя метод HTTP GET.
file_put_contents()
записывает в файл, но не может делать это по HTTP, потому что оболочка может только читать HTTP, используя GET.
Вам нужен другой подход для достижения того, что вы хотите.
В корневом каталоге документа website2.fr
вы можете написать сценарий, который записывает file.xml
после извлечения файла из http://website1.fr/file.xml
.
Пример:
<?php
$contentsAnnonces = file_get_contents("http://website1.fr/file.xml");
file_put_contents(ORIGINE_DU_DOCUMENT . "/file.xml", $contentsAnnonces);
… Где ORIGINE_DU_DOCUMENT
- это путь к корню документа на сайте website2.fr
.
При запуске сценария содержимое http://website2.fr/file.xml
будет идентично содержимому http://website1.fr/file.xml
полученному по HTTP.