|
@@ -32,69 +32,45 @@
|
|
|
<div id="main_content_wrap" class="outer">
|
|
<div id="main_content_wrap" class="outer">
|
|
|
<section id="main_content" class="inner">
|
|
<section id="main_content" class="inner">
|
|
|
<h1>
|
|
<h1>
|
|
|
-<a name="php-phantomjs" class="anchor" href="#php-phantomjs"><span class="octicon octicon-link"></span></a>PHP PhantomJS</h1>
|
|
|
|
|
|
|
+<a name="introduction" class="anchor" href="#introduction"><span class="octicon octicon-link"></span></a>Introduction</h1>
|
|
|
|
|
|
|
|
-<p>PHP PhantomJS is a simple PHP library to load pages through the PhantomJS
|
|
|
|
|
|
|
+<p>PHP PhantomJS is a flexible PHP library to load pages through the PhantomJS
|
|
|
headless browser and return the page response. It is handy for testing
|
|
headless browser and return the page response. It is handy for testing
|
|
|
websites that demand javascript support and also supports screen captures.</p>
|
|
websites that demand javascript support and also supports screen captures.</p>
|
|
|
|
|
|
|
|
-<p><a href="https://packagist.org/packages/jonnyw/php-phantomjs"><img src="https://poser.pugx.org/jonnyw/php-phantomjs/downloads.png" alt="Total Downloads"></a> <a href="https://packagist.org/packages/jonnyw/php-phantomjs"><img src="https://poser.pugx.org/jonnyw/php-phantomjs/v/stable.png" alt="Latest Stable Version"></a> <a href="https://travis-ci.org/jonnnnyw/php-phantomjs"><img src="https://travis-ci.org/jonnnnyw/php-phantomjs.png?branch=master" alt="Build Status"></a> <a href="https://scrutinizer-ci.com/g/jonnnnyw/php-phantomjs/"><img src="https://scrutinizer-ci.com/g/jonnnnyw/php-phantomjs/badges/quality-score.png?s=631d32fa1fbb9300eb84b9b52702c7ffeac046a1" alt="Scrutinizer Quality Score"></a> <a href="https://scrutinizer-ci.com/g/jonnnnyw/php-phantomjs/"><img src="https://scrutinizer-ci.com/g/jonnnnyw/php-phantomjs/badges/coverage.png?s=893b5997da45448e32983b8568a39630b0b2d91b" alt="Code Coverage"></a></p>
|
|
|
|
|
-
|
|
|
|
|
<h2>
|
|
<h2>
|
|
|
-<a name="00-table-of-contents" class="anchor" href="#00-table-of-contents"><span class="octicon octicon-link"></span></a>0.0 Table of Contents</h2>
|
|
|
|
|
|
|
+<a name="feature-list" class="anchor" href="#feature-list"><span class="octicon octicon-link"></span></a>Feature List</h2>
|
|
|
|
|
|
|
|
<ul>
|
|
<ul>
|
|
|
-<li>Introduction</li>
|
|
|
|
|
-<li>Examples</li>
|
|
|
|
|
-<li>Changelog</li>
|
|
|
|
|
-<li>Troubleshooting</li>
|
|
|
|
|
|
|
+<li>Load webpages through the PhantomJS headless browser</li>
|
|
|
|
|
+<li>View detailed response data including page content, headers, status code etc.</li>
|
|
|
|
|
+<li>Handle redirects</li>
|
|
|
|
|
+<li>View javascript console errors</li>
|
|
|
|
|
+<li>View detailed PhantomJS debuged information</li>
|
|
|
|
|
+<li>Save screen captures to local disk </li>
|
|
|
|
|
+<li>Define screen capture x, y, width and height parameters</li>
|
|
|
|
|
+<li>Delay page rendering for a specified time</li>
|
|
|
|
|
+<li>Execute PhantomJS with command line options</li>
|
|
|
|
|
+<li>Easily build and run custom PhantomJS scripts</li>
|
|
|
</ul><h2>
|
|
</ul><h2>
|
|
|
-<a name="10-introduction" class="anchor" href="#10-introduction"><span class="octicon octicon-link"></span></a>1.0 Introduction</h2>
|
|
|
|
|
-
|
|
|
|
|
-<p>This library provides the ability to load pages through the PhantomJS
|
|
|
|
|
-headless browser and return the page response. It also lets you screen
|
|
|
|
|
-capture pages and save the captures to disk. It is designed to meet a
|
|
|
|
|
-simple objective and does not offer a PHP API to the full suite of
|
|
|
|
|
-PhantomJS functionality.</p>
|
|
|
|
|
-
|
|
|
|
|
-<p>The PhantomJS executable comes bundled with the library. If installed
|
|
|
|
|
-via composer, the file will be symlinked in your bin folder.</p>
|
|
|
|
|
|
|
+<a name="prerequisites" class="anchor" href="#prerequisites"><span class="octicon octicon-link"></span></a>Prerequisites</h2>
|
|
|
|
|
|
|
|
-<p>If you are looking for a PHP library to run external javascript files
|
|
|
|
|
-through PhantomJS then this is not for you. Check out <a href="https://github.com/Dachande663/PHP-PhantomJS">PhantomJS runner</a>.</p>
|
|
|
|
|
|
|
+<p>PHP PhantomJS requires PHP <strong>5.3.0</strong> or greater to run.</p>
|
|
|
|
|
|
|
|
<h2>
|
|
<h2>
|
|
|
-<a name="20-examples" class="anchor" href="#20-examples"><span class="octicon octicon-link"></span></a>2.0 Examples</h2>
|
|
|
|
|
-
|
|
|
|
|
-<p>Request a URL and output the reponse:</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'http://google.com'</span><span class="p">);</span>
|
|
|
|
|
|
|
+<a name="installation" class="anchor" href="#installation"><span class="octicon octicon-link"></span></a>Installation</h2>
|
|
|
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createResponse</span><span class="p">();</span>
|
|
|
|
|
|
|
+<p>It is recommended that you use Composer to install PHP PhantomJS:</p>
|
|
|
|
|
|
|
|
-<span class="c1">// Send the request</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">);</span>
|
|
|
|
|
|
|
+<div class="highlight highlight-xml"><pre>composer require "jonnyw/php-phantomjs:3.*"
|
|
|
|
|
+</pre></div>
|
|
|
|
|
|
|
|
-<span class="k">if</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">getStatus</span><span class="p">()</span> <span class="o">===</span> <span class="mi">200</span><span class="p">)</span> <span class="p">{</span>
|
|
|
|
|
|
|
+<p>If you would like to use another installation method or would like to see more detailed installation instruction, see the <a href="http://jonnnnyw.github.io/php-phantomjs/">installation</a> documentation.</p>
|
|
|
|
|
|
|
|
- <span class="c1">// Dump the requested page content</span>
|
|
|
|
|
- <span class="k">echo</span> <span class="nv">$response</span><span class="o">-></span><span class="na">getContent</span><span class="p">();</span>
|
|
|
|
|
-<span class="p">}</span>
|
|
|
|
|
-</pre></div>
|
|
|
|
|
|
|
+<h2>
|
|
|
|
|
+<a name="basic-usage" class="anchor" href="#basic-usage"><span class="octicon octicon-link"></span></a>Basic Usage</h2>
|
|
|
|
|
|
|
|
-<p>Request a URL with delay and output the reponse:</p>
|
|
|
|
|
|
|
+<p>The following illustrates how to make a basic GET request and output the page content:</p>
|
|
|
|
|
|
|
|
<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
|
|
@@ -105,15 +81,15 @@ through PhantomJS then this is not for you. Check out <a href="https://github.co
|
|
|
<span class="sd">/** </span>
|
|
<span class="sd">/** </span>
|
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
<span class="sd"> **/</span>
|
|
<span class="sd"> **/</span>
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'http://google.com'</span><span class="p">);</span>
|
|
|
|
|
|
|
+<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">(</span><span class="s1">'http://google.com'</span><span class="p">,</span> <span class="s1">'GET'</span><span class="p">);</span>
|
|
|
|
|
|
|
|
<span class="sd">/** </span>
|
|
<span class="sd">/** </span>
|
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
|
<span class="sd"> **/</span>
|
|
<span class="sd"> **/</span>
|
|
|
<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createResponse</span><span class="p">();</span>
|
|
<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createResponse</span><span class="p">();</span>
|
|
|
|
|
|
|
|
-<span class="c1">// Send the request with delay in miliseconds</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">open</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">,</span> <span class="nv">$delay</span> <span class="o">=</span> <span class="mi">5000</span><span class="p">);</span>
|
|
|
|
|
|
|
+<span class="c1">// Send the request</span>
|
|
|
|
|
+<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">);</span>
|
|
|
|
|
|
|
|
<span class="k">if</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">getStatus</span><span class="p">()</span> <span class="o">===</span> <span class="mi">200</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">if</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">getStatus</span><span class="p">()</span> <span class="o">===</span> <span class="mi">200</span><span class="p">)</span> <span class="p">{</span>
|
|
|
|
|
|
|
@@ -122,59 +98,7 @@ through PhantomJS then this is not for you. Check out <a href="https://github.co
|
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
|
</pre></div>
|
|
</pre></div>
|
|
|
|
|
|
|
|
-<p>Request a URL, save a screen capture to provided location and return the response:</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'http://google.com'</span><span class="p">);</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createResponse</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="c1">// Send the request</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">,</span> <span class="s1">'/path/to/save/screen/capture.png'</span><span class="p">);</span>
|
|
|
|
|
-</pre></div>
|
|
|
|
|
-
|
|
|
|
|
-<p>Send post request with data:</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$request</span><span class="o">-></span><span class="na">setMethod</span><span class="p">(</span><span class="s1">'POST'</span><span class="p">);</span>
|
|
|
|
|
-<span class="nv">$request</span><span class="o">-></span><span class="na">setUrl</span><span class="p">(</span><span class="s1">'http://google.com'</span><span class="p">);</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$request</span><span class="o">-></span><span class="na">setRequestData</span><span class="p">(</span><span class="k">array</span><span class="p">(</span>
|
|
|
|
|
- <span class="s1">'name'</span> <span class="o">=></span> <span class="s1">'Test'</span><span class="p">,</span>
|
|
|
|
|
- <span class="s1">'email'</span> <span class="o">=></span> <span class="s1">'test@jonnyw.me'</span>
|
|
|
|
|
-<span class="p">));</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createResponse</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="c1">// Send the request</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">);</span>
|
|
|
|
|
-</pre></div>
|
|
|
|
|
-
|
|
|
|
|
-<p>Set a request header:</p>
|
|
|
|
|
|
|
+<p>And if you would like to save a screen capture to local disk:</p>
|
|
|
|
|
|
|
|
<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
|
|
@@ -185,47 +109,8 @@ through PhantomJS then this is not for you. Check out <a href="https://github.co
|
|
|
<span class="sd">/** </span>
|
|
<span class="sd">/** </span>
|
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
<span class="sd"> **/</span>
|
|
<span class="sd"> **/</span>
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$request</span><span class="o">-></span><span class="na">addHeader</span><span class="p">(</span><span class="s1">'User-Agent'</span><span class="p">,</span> <span class="s1">'Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.2 Safari/534.34'</span><span class="p">);</span>
|
|
|
|
|
-</pre></div>
|
|
|
|
|
-
|
|
|
|
|
-<p>Get a response header:</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'http://google.com'</span><span class="p">);</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$response</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createResponse</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="c1">// Send the request</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">,</span> <span class="s1">'/path/to/save/screen/capture.png'</span><span class="p">);</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">echo</span> <span class="nv">$response</span><span class="o">-></span><span class="na">getHeader</span><span class="p">(</span><span class="s1">'Cache-Control'</span><span class="p">);</span>
|
|
|
|
|
-</pre></div>
|
|
|
|
|
-
|
|
|
|
|
-<p>Handle response redirect:</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="sd">/** </span>
|
|
|
|
|
-<span class="sd"> * @see JonnyW\PhantomJs\Message\Request </span>
|
|
|
|
|
-<span class="sd"> **/</span>
|
|
|
|
|
-<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createRequest</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'http://google.com'</span><span class="p">);</span>
|
|
|
|
|
|
|
+<span class="nv">$request</span> <span class="o">=</span> <span class="nv">$client</span><span class="o">-></span><span class="na">getMessageFactory</span><span class="p">()</span><span class="o">-></span><span class="na">createCaptureRequest</span><span class="p">(</span><span class="s1">'http://google.com'</span><span class="p">,</span> <span class="s1">'GET'</span><span class="p">);</span>
|
|
|
|
|
+<span class="nv">$request</span><span class="o">-></span><span class="na">setCaptureFile</span><span class="p">(</span><span class="s1">'/path/to/save/capture/file.jpg'</span><span class="p">);</span>
|
|
|
|
|
|
|
|
<span class="sd">/** </span>
|
|
<span class="sd">/** </span>
|
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
<span class="sd"> * @see JonnyW\PhantomJs\Message\Response </span>
|
|
@@ -235,82 +120,8 @@ through PhantomJS then this is not for you. Check out <a href="https://github.co
|
|
|
<span class="c1">// Send the request</span>
|
|
<span class="c1">// Send the request</span>
|
|
|
<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">);</span>
|
|
<span class="nv">$client</span><span class="o">-></span><span class="na">send</span><span class="p">(</span><span class="nv">$request</span><span class="p">,</span> <span class="nv">$response</span><span class="p">);</span>
|
|
|
|
|
|
|
|
-<span class="k">if</span><span class="p">(</span><span class="nv">$response</span><span class="o">-></span><span class="na">isRedirect</span><span class="p">())</span> <span class="p">{</span>
|
|
|
|
|
- <span class="k">echo</span> <span class="nv">$response</span><span class="o">-></span><span class="na">getRedirectUrl</span><span class="p">();</span>
|
|
|
|
|
-<span class="p">}</span>
|
|
|
|
|
-
|
|
|
|
|
-</pre></div>
|
|
|
|
|
-
|
|
|
|
|
-<p>Define a new path to the PhantomJS executable:</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">setPhantomJs</span><span class="p">(</span><span class="s1">'/path/to/phantomjs'</span><span class="p">);</span>
|
|
|
|
|
-</pre></div>
|
|
|
|
|
|
|
|
|
|
-<p>Set timeout for the request (defaults to 5 seconds):</p>
|
|
|
|
|
-
|
|
|
|
|
-<div class="highlight highlight-php"><pre><span class="o"><?</span><span class="nx">php</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="k">use</span> <span class="nx">JonnyW\PhantomJs\Client</span><span class="p">;</span>
|
|
|
|
|
-
|
|
|
|
|
-<span class="nv">$client</span> <span class="o">=</span> <span class="nx">Client</span><span class="o">::</span><span class="na">getInstance</span><span class="p">();</span>
|
|
|
|
|
-<span class="nv">$client</span><span class="o">-></span><span class="na">setTimeout</span><span class="p">(</span><span class="mi">10000</span><span class="p">);</span> <span class="c1">// In milleseconds</span>
|
|
|
|
|
</pre></div>
|
|
</pre></div>
|
|
|
-
|
|
|
|
|
-<h2>
|
|
|
|
|
-<a name="30-changelog" class="anchor" href="#30-changelog"><span class="octicon octicon-link"></span></a>3.0 Changelog</h2>
|
|
|
|
|
-
|
|
|
|
|
-<h3>
|
|
|
|
|
-<a name="v200" class="anchor" href="#v200"><span class="octicon octicon-link"></span></a>V2.0.0</h3>
|
|
|
|
|
-
|
|
|
|
|
-<p>Version 2.0.0 changes the way requests are made. Requests now require you
|
|
|
|
|
-to inject a request and response instance into the send method. The examples
|
|
|
|
|
-above illustrate how to make requests in version 2.0.0 and will not work
|
|
|
|
|
-for older versions.</p>
|
|
|
|
|
-
|
|
|
|
|
-<ul>
|
|
|
|
|
-<li>Requests now require you to inject a request and response instance when sending.</li>
|
|
|
|
|
-<li>Added message factory that can also be injected into client when instantiated.</li>
|
|
|
|
|
-<li>Custom headers can be set in requests.</li>
|
|
|
|
|
-<li>Request method can be set. Supports: OPTIONS, GET, HEAD, POST, PUT, DELETE, PATCH.</li>
|
|
|
|
|
-<li>Request data can be set. Useful when making post requests.</li>
|
|
|
|
|
-</ul><h2>
|
|
|
|
|
-<a name="40-troubleshooting" class="anchor" href="#40-troubleshooting"><span class="octicon octicon-link"></span></a>4.0 Troubleshooting</h2>
|
|
|
|
|
-
|
|
|
|
|
-<p>If you are using V1.0.0 then the examples above won't work for you. It is reccommend that you upgrade to the latest version.</p>
|
|
|
|
|
-
|
|
|
|
|
-<p>Look at the response class (JonnyW\PhantomJs\Response) to see what data you have access to.</p>
|
|
|
|
|
-
|
|
|
|
|
-<p>An explanation of the errors that are thrown by the client:</p>
|
|
|
|
|
-
|
|
|
|
|
-<h3>
|
|
|
|
|
-<a name="commandfailedexception" class="anchor" href="#commandfailedexception"><span class="octicon octicon-link"></span></a>CommandFailedException</h3>
|
|
|
|
|
-
|
|
|
|
|
-<p>The command sent to the PhantomJS executable failed. This should be very rare and is probably my fault if this happens (sorry).</p>
|
|
|
|
|
-
|
|
|
|
|
-<h3>
|
|
|
|
|
-<a name="invalidurlexception" class="anchor" href="#invalidurlexception"><span class="octicon octicon-link"></span></a>InvalidUrlException</h3>
|
|
|
|
|
-
|
|
|
|
|
-<p>The URL you are providing is an invalid format. It is very loose verification.</p>
|
|
|
|
|
-
|
|
|
|
|
-<h3>
|
|
|
|
|
-<a name="invalidmethodexception" class="anchor" href="#invalidmethodexception"><span class="octicon octicon-link"></span></a>InvalidMethodException</h3>
|
|
|
|
|
-
|
|
|
|
|
-<p>The request method you are providing is invalid.</p>
|
|
|
|
|
-
|
|
|
|
|
-<h3>
|
|
|
|
|
-<a name="nophantomjsexception" class="anchor" href="#nophantomjsexception"><span class="octicon octicon-link"></span></a>NoPhantomJsException</h3>
|
|
|
|
|
-
|
|
|
|
|
-<p>The PhantomJS executable cannot be found or it is not executable. Check the path and permissions.</p>
|
|
|
|
|
-
|
|
|
|
|
-<h3>
|
|
|
|
|
-<a name="notwriteableexception" class="anchor" href="#notwriteableexception"><span class="octicon octicon-link"></span></a>NotWriteableException</h3>
|
|
|
|
|
-
|
|
|
|
|
-<p>The screen capture location you provided or your /tmp folder are not writeable. The /tmp folder is used to temporarily write the scripts that PhantomJS executes. They are deleted after execution or on failure.</p>
|
|
|
|
|
</section>
|
|
</section>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|