Files
curl-impersonate/docs/03_LIBCURL_IMPERSONATE_PHP.md
lwthiker 27efac6b95 Create docs/ folder with initial content
Add more documentation on the following topics:
* Running `curl-impersonate` from the command line, including changing
the HTTP headers when needed.
* Using `libcurl-impersonate` in JS and PHP scripts.
2022-09-10 19:07:14 +03:00

1.0 KiB

Using libcurl-impersonate in PHP scripts

It is possible to use libcurl-impersonate in PHP scripts instead of the original libcurl. PHP loads libcurl dynamically during runtime, which means that a different set of steps needs to be taken.

On Linux

First, patch libcurl-impersonate and change its SONAME:

patchelf --set-soname libcurl.so.4 /path/to/libcurl-impersonate-chrome.so

Then replace at runtime with:

LD_PRELOAD=/path/to/libcurl-impersonate-chrome.so CURL_IMPERSONATE=chrome101 php -r 'print_r(curl_version());'

If successful you should see:

[ssl_version] => BoringSSL

(or NSS if the Firefox version is used)

On macOS

On Mac, first rename libcurl-impersonate-chrome.dylib to libcurl.4.dylib and place in some directory, say /usr/local/lib. Then run php with the DYLD_LIBRARY_PATH env var pointing to that directory, for example:

DYLD_LIBRARY_PATH=/usr/local/lib php -r 'print_r(curl_version());'

If successful you should see:

[ssl_version] => BoringSSL