Proxy servers are used in most companies as a gateway to the internet, that do other things like cache results and check web requests and responses. A PAC file is a Javascript file evaluated by web browsers to determine which proxy server to use for certain URL's. For example, some URL's can go straight to the internet, or a local server, and others must be sent to one of the proxy servers.
One day I needed to run this javascript from php on the web server, to find the proxy in the same way; then php could also follow the same proxy rules as desktop computers in my office.
Here's a working example of using the php_spidermonkey extension to run a proxy auto config script (javascript) in PHP.
Programming used to be fun. Thanks to PHP's support for Windows builds, you can run very efficient web sites on Windows and have a good time making them. This blog is a small collection of the additional things I've needed to help me build a few sites.
Showing posts with label Javascript. Show all posts
Showing posts with label Javascript. Show all posts
Wednesday, 13 June 2012
Javascript Return Statement
After 20+ years of programming I learnt something new today, while messing about with the php_spidermonkey extension.
If you place a carriage return after a 'return' statement in Javascript, and put some code on the line underneath, the function returns 'undefined', as if the statement was simply:
Here's an example of a function that returns 'undefined':
If you place a carriage return after a 'return' statement in Javascript, and put some code on the line underneath, the function returns 'undefined', as if the statement was simply:
return; Here's an example of a function that returns 'undefined':
function whatelse() { var ok = false; return // function ends here ok ? 'OK (true)' : 'OK (false)'; // this line is never executed! }
Javascript in PHP on Windows with php_spidermonkey
Update 19 June 2014 - the latest builds of php_spidermonkey for Windows are contained in this zip: all_php_builds.zip. I reported a few days ago that the PHP 5.5 TS build did not work - as of 19 June 2014 it works. PHP 5.5 includes 64-bit versions in the x64 folder of the zip file.
I needed to evaluate a web browser's PAC (proxy auto config) file exactly the way a browser would, by executing the Javascript function FindProxyForURL (see here for a good guide). The browser uses its Javascript engine, so to simulate it, I wanted to run Javascript inside PHP (an example is here in another post).
Subscribe to:
Posts (Atom)