Can't get curl() to run from command line
Posted by: origfla (---.hsd1.fl.comcast.net)
Date: October 26, 2010 07:36PM

Gurus out there PLEASE HELP!!!

I have wamp installed on my system (Windows 7) and am trying to run a script that uses curl() ( curl_init() ) through my local server.

I have enabled php_curl() on my wamp extensions and have checked the php.ini file in both my php/bin and my apache/bin folders and both times, the line "extension=php_curl.dll" does NOT have a semi-colon in front of it.

Now, when I try and run the command through the command prompt, I get the error:
Fatal error: Call to undefined function curl_init() in C:\wamp\www\auctions\scripts\auction\Requester.php on line 28
... And line 28 of Requester.php simply says "$this->curl=curl_init();"

A strange thing, though, is that when I run phpinfo(), I get that:
Configuration File (php.ini) Path = C:\Windows

BUT it also says for the curl portion that:
cURL support = enabled
cURL Information = 7.19.4
Age = 3


I am truly at wit's end here - I don't know why this is happening or what to do about it... I am THINKING it has something to do with running the php command at the command line, but I don't know what needs to be done so as to make it run well.


PLEASE HELP!!!!!!

Thanks!

Options: ReplyQuote
Re: Can't get curl() to run from command line
Posted by: stevenmartin99 (---.b-ras2.blp.dublin.eircom.net)
Date: October 26, 2010 07:51PM

check the php.ini again


your looking for the Loaded Config File
not the expected one..


Either way this is from the php.exe used for apache..the command line exe is different

its in the php folder

[phpCli]
phpCliFile = php-win.exe

i think u need to put the curl exe and cert into that folder ( ages since i tried)

Steven Martin
stevenmartin99@gmail.com
stevenmartin99@hotmail.com
PampServer.com - [pampserver.com]

Options: ReplyQuote
Re: Can't get curl() to run from command line
Posted by: origfla (---.hsd1.fl.comcast.net)
Date: October 26, 2010 08:01PM

Steven,

I'm not sure I understand what you are saying or what to do... could oyu please elaborate... I write like a pro, perhaps, but am an utter newbie!!!

I tried copying the php_curl.dll file into the same directory as the php-win.exe, but nothing changed with regards to the error. I then tried pasting a copy of it into the same directory as the file I was trying to run, but also no help...

What should I copy from where to where and what would I have to type at the command prompt to get it to work?

This issue is just **SO** frustrating!!!

Thanks!

Options: ReplyQuote
Re: Can't get curl() to run from command line
Posted by: stevenmartin99 (---.b-ras2.blp.dublin.eircom.net)
Date: October 26, 2010 08:29PM

i never used the extention when using command line

it should work but check which php.ini is loaded.

to do this use

php-win.exe -i > C:\phpinfo.txt

to see which the CLI exe is trying to use..

--------------------------------------------------------------------------------

i always use the curl.exe >> [www.gknw.net]

using the -L -A switches ( -C is you need to send a cookie with it)


full switch commands

-a/--append Append to target file when uploading (F)
-A/--user-agent <string> User-Agent to send to server (H)
--anyauth Pick "any" authentication method (H)
-b/--cookie <name=string/file> Cookie string or file to read cooki
--basic Use HTTP Basic Authentication (H)
-B/--use-ascii Use ASCII/text transfer
-c/--cookie-jar <file> Write cookies to this file after operation
-C/--continue-at <offset> Resumed transfer offset
-d/--data <data> HTTP POST data (H)
--data-ascii <data> HTTP POST ASCII data (H)
--data-binary <data> HTTP POST binary data (H)
--negotiate Use HTTP Negotiate Authentication (H)
--digest Use HTTP Digest Authentication (H)
--disable-eprt Inhibit using EPRT or LPRT (F)
--disable-epsv Inhibit using EPSV (F)
-D/--dump-header <file> Write the headers to this file
--egd-file <file> EGD socket path for random data (SSL)
--tcp-nodelay Use the TCP_NODELAY option
-e/--referer Referer URL (H)
-E/--cert <cert[:passwd]> Client certificate file and password (SS
--cert-type <type> Certificate file type (DER/PEM/ENG) (SSL)
--key <key> Private key file name (SSL)
--key-type <type> Private key file type (DER/PEM/ENG) (SSL)
--pass <pass> Pass phrase for the private key (SSL)
--engine <eng> Crypto engine to use (SSL). "--engine list" for
--cacert <file> CA certificate to verify peer against (SSL)
--capath <directory> CA directory (made using c_rehash) to veri
peer against (SSL)
--ciphers <list> SSL ciphers to use (SSL)
--compressed Request compressed response (using deflate or g
--connect-timeout <seconds> Maximum time allowed for connection
--create-dirs Create necessary local directory hierarchy
--crlf Convert LF to CRLF in upload
-f/--fail Fail silently (no output at all) on HTTP errors
--ftp-alternative-to-user String to replace "USER [name]" (F)
--ftp-create-dirs Create the remote dirs if not present (F)
--ftp-method [multicwd/nocwd/singlecwd] Control CWD usage (F)
--ftp-pasv Use PASV/EPSV instead of PORT (F)
--ftp-skip-pasv-ip Skip the IP address for PASV (F)
--ftp-ssl Try SSL/TLS for ftp transfer (F)
--ftp-ssl-control Require SSL/TLS for ftp login, clear for tran
--ftp-ssl-reqd Require SSL/TLS for ftp transfer (F)
-F/--form <name=content> Specify HTTP multipart POST data (H)
--form-string <name=string> Specify HTTP multipart POST data (H
-g/--globoff Disable URL sequences and ranges using {} and [
-G/--get Send the -d data with a HTTP GET (H)
-h/--help This help text
-H/--header <line> Custom header to pass to server (H)
--ignore-content-length Ignore the HTTP Content-Length header
-i/--include Include protocol headers in the output (H/F)
-I/--head Show document info only
-j/--junk-session-cookies Ignore session cookies read from file (H
--interface <interface> Specify network interface/address to us
--krb4 <level> Enable krb4 with specified security level (F)
-k/--insecure Allow connections to SSL sites without certs (H
-K/--config Specify which config file to read
-l/--list-only List only names of an FTP directory (F)
--limit-rate <rate> Limit transfer speed to this rate
--local-port <num>[-num] Force use of these local port numbers

-L/--location Follow Location: hints (H)
--location-trusted Follow Location: and send authentication eve
to other hostnames (H)
-m/--max-time <seconds> Maximum time allowed for the transfer
--max-redirs <num> Maximum number of redirects allowed (H)
--max-filesize <bytes> Maximum file size to download (H/F)
-M/--manual Display the full manual
-n/--netrc Must read .netrc for user name and password
--netrc-optional Use either .netrc or URL; overrides -n
--ntlm Use HTTP NTLM authentication (H)
-N/--no-buffer Disable buffering of the output stream
--no-sessionid Disable SSL session-ID reusing (SSL)
-o/--output <file> Write output to <file> instead of stdout
-O/--remote-name Write output to a file named as the remote file
-p/--proxytunnel Operate through a HTTP proxy tunnel (using CONN
--proxy-anyauth Pick "any" proxy authentication method (H)
--proxy-basic Use Basic authentication on the proxy (H)
--proxy-digest Use Digest authentication on the proxy (H)
--proxy-ntlm Use NTLM authentication on the proxy (H)
-P/--ftp-port <address> Use PORT with address instead of PASV (F)
-q If used as the first parameter disables .curlrc
-Q/--quote <cmd> Send command(s) to server before file transfer
-r/--range <range> Retrieve a byte range from a HTTP/1.1 or FTP se
--random-file <file> File for reading random data from (SSL)
-R/--remote-time Set the remote file's time on the local output
--retry <num> Retry request <num> times if transient problems
--retry-delay <seconds> When retrying, wait this many seconds b
--retry-max-time <seconds> Retry only within this period
-s/--silent Silent mode. Don't output anything
-S/--show-error Show error. With -s, make curl show errors when
--socks4 <host[:port]> Use SOCKS4 proxy on given host + port
--socks5 <host[:port]> Use SOCKS5 proxy on given host + port
--stderr <file> Where to redirect stderr. - means stdout
-t/--telnet-option <OPT=val> Set telnet option
--trace <file> Write a debug trace to the given file
--trace-ascii <file> Like --trace but without the hex output
--trace-time Add time stamps to trace/verbose output
-T/--upload-file <file> Transfer <file> to remote site
--url <URL> Spet URL to work with
-u/--user <user[:password]> Set server user and password
-U/--proxy-user <user[:password]> Set proxy user and password
-v/--verbose Make the operation more talkative
-V/--version Show version number and quit
-w/--write-out [format] What to output after completion
-x/--proxy <host[:port]> Use HTTP proxy on given port
-X/--request <command> Specify request command to use
-y/--speed-time Time needed to trig speed-limit abort. Defaults
-Y/--speed-limit Stop transfer if below speed-limit for 'speed-t
-z/--time-cond <time> Transfer based on a time condition
-0/--http1.0 Use HTTP 1.0 (H)
-1/--tlsv1 Use TLSv1 (SSL)
-2/--sslv2 Use SSLv2 (SSL)
-3/--sslv3 Use SSLv3 (SSL)
-4/--ipv4 Resolve name to IPv4 address
-6/--ipv6 Resolve name to IPv6 address
-#/--progress-bar Display transfer progress as a progress bar

Steven Martin
stevenmartin99@gmail.com
stevenmartin99@hotmail.com
PampServer.com - [pampserver.com]

Options: ReplyQuote
Re: Can't get curl() to run from command line
Posted by: origfla (---.hsd1.fl.comcast.net)
Date: October 27, 2010 04:26AM

Steven, thank you for your advice, but still no help...

I tried to run your command:
php-win.exe -i > C:\phpinfo.txt

and I got the error "Access is Denied"

And i tried to run the command with the "-L -A" switches and still got the same error...


!!!!!!!!!!!!!!PLEASE SOMEONE HELP!!!!!!!!!!!!!

Options: ReplyQuote


Sorry, only registered users may post in this forum.