xref: /PHP-8.4/ext/curl/tests/curl_ftp_pasv.phpt (revision 39131219)
1--TEST--
2Test curl_exec() function with basic functionality
3--EXTENSIONS--
4curl
5--SKIPIF--
6<?php
7if (false === getenv('PHP_CURL_FTP_REMOTE_SERVER'))  exit("skip PHP_CURL_FTP_REMOTE_SERVER env variable is not defined");
8if (false === getenv('PHP_CURL_FTP_REMOTE_USER'))  exit("skip PHP_CURL_FTP_REMOTE_USER env variable is not defined");
9if (false === getenv('PHP_CURL_FTP_REMOTE_PASSWD'))  exit("skip PHP_CURL_FTP_REMOTE_PASSWD env variable is not defined");
10?>
11--FILE--
12<?php
13  $host = getenv('PHP_CURL_FTP_REMOTE_SERVER');
14  $username = getenv('PHP_CURL_FTP_REMOTE_USER');
15  $password = getenv('PHP_CURL_FTP_REMOTE_PASSWD');
16
17  // FTP this script to a server
18  $fp  =  fopen ( __FILE__ ,  "r" );
19  $url  =  "ftp://$username:$password@$host/test.phpt" ;
20
21  $ch  =  curl_init ();
22
23  // enable below to get the output in verbose mode.
24  // curl_setopt ( $ch , CURLOPT_VERBOSE, 1 );
25
26  /* Without enabling SKIP_PASV_IP flag, the following output will be seen..
27    < 227 Entering Passive Mode (10,5,80,146,100,199)
28    *   Trying 10.5.80.146... * connected
29    * Connecting to 10.5.80.146 (10.5.80.146) port 25799
30   */
31
32  /* After enabling SKIP_PASV_IP flag, the following output will be seen..
33    < 227 Entering Passive Mode (10,5,80,146,50,229)
34    * Skips 10.5.80.146 for data connection, uses 10.5.80.146 instead
35    *   Trying 10.5.80.146... * connected
36   */
37
38  curl_setopt ( $ch , CURLOPT_URL, $url );
39  curl_setopt ( $ch , CURLOPT_TRANSFERTEXT, 1 );
40
41  //force passive connection
42  curl_setopt ( $ch , CURLOPT_FTP_USE_EPSV, 0 );
43  curl_setopt ( $ch , CURLOPT_FTP_SKIP_PASV_IP, 1 );
44
45  // mark the file for upload..
46  curl_setopt ( $ch , CURLOPT_INFILE, $fp );
47  curl_setopt ( $ch , CURLOPT_INFILESIZE,  filesize(__FILE__) );
48  curl_setopt ( $ch , CURLOPT_PUT, 1 );
49  curl_setopt ( $ch , CURLOPT_UPLOAD, 1 );
50
51  $result  =  curl_exec ( $ch );
52  var_dump ( $result );
53  curl_close ( $ch );
54
55?>
56--EXPECT--
57bool(true)
58