Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 1.01 KB

03_LIBCURL_IMPERSONATE_PHP.md

File metadata and controls

33 lines (25 loc) · 1.01 KB

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