2016-06-22 4 views
0

Я пытаюсь получить файл с FTP-сервера в коротком коде WordPress.Получить содержимое файла с FTP-сервера - WordPress

Прежде чем приступить к созданию короткого кода WP, я написал и протестировал свой код в «пустой» среде без WP, и он работал нормально.

Затем я перевел код в короткий код WP. И теперь у меня проблемы.

Во-первых, я узнал, что вы не можете использовать file_get_contents() в WordPress ....

... Итак, я заменил эту функцию с wp_remote_get(). Но эта функция не принимает URL-адрес, начинающийся с 'ftp: //'.

Вот мой код, любые идеи о том, что нужно изменить, чтобы заставить его работать в WordPress ?:

$stuff = array();  

$conn_id = ftp_connect($ftp_server) or die("Error: Cannot connect to FTP Server."); 

// try to login 
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) { 
    echo ""; 
} else { 
    echo "Error: Cannot connect to FTP Server."; 
} 

if (($response_xml_data = file_get_contents('ftp://username:[email protected]/file.xml'))===false){ 
    echo "Error: Failed to fetch file.<br/>"; 
} else { 
    libxml_use_internal_errors(true); 
    print_r($response_xml_data); 
    $data = simplexml_load_string($response_xml_data); 
    if (!$data) { 
     echo "Error loading XML\n"; 
     foreach(libxml_get_errors() as $error) { 
      echo "\t", $error->message; 
     } 
    } else { 
     $stuff = $data; 
    } 
} 

// close the connection 
ftp_close($conn_id); 

Когда я заменить file_get_contents() с wp_remote_get(), $ response_xml_data равна:

WP_Error Object ([errors] => Array ([http_request_failed] => Array ([0] => A valid URL was not provided.)) [error_data] => Array ()) 

ответ

0

Царапина, что ... Проблема не в коде, это серверная вещь. Параметр 'allow_url_fopen' в php.ini должен быть установлен в '1'.