Skip to content

Commit 9c92856

Browse files
committed
Add additional Curl::set* and MultiCurl::set* helper methods
1 parent 4a271bd commit 9c92856

File tree

5 files changed

+190
-0
lines changed

5 files changed

+190
-0
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ Curl::put($url, $data = array())
254254
Curl::removeHeader($key)
255255
Curl::reset()
256256
Curl::search($url, $data = array())
257+
Curl::setAutoReferer($auto_referer = true)
258+
Curl::setAutoReferrer($auto_referrer = true)
257259
Curl::setBasicAuthentication($username, $password = '')
258260
Curl::setConnectTimeout($seconds)
259261
Curl::setCookie($key, $value)
@@ -268,11 +270,14 @@ Curl::setDefaultUserAgent()
268270
Curl::setDefaultXmlDecoder()
269271
Curl::setDigestAuthentication($username, $password = '')
270272
Curl::setFile($file)
273+
Curl::setFollowLocation($follow_location = true)
274+
Curl::setForbidReuse($forbid_reuse = true)
271275
Curl::setHeader($key, $value)
272276
Curl::setHeaders($headers)
273277
Curl::setInterface($interface)
274278
Curl::setJsonDecoder($mixed)
275279
Curl::setMaxFilesize($bytes)
280+
Curl::setMaximumRedirects($maximum_redirects)
276281
Curl::setOpt($option, $value)
277282
Curl::setOpts($options)
278283
Curl::setPort($port)
@@ -311,6 +316,8 @@ MultiCurl::disableTimeout()
311316
MultiCurl::error($callback)
312317
MultiCurl::getOpt($option)
313318
MultiCurl::removeHeader($key)
319+
MultiCurl::setAutoReferer($auto_referer = true)
320+
MultiCurl::setAutoReferrer($auto_referrer = true)
314321
MultiCurl::setBasicAuthentication($username, $password = '')
315322
MultiCurl::setConcurrency($concurrency)
316323
MultiCurl::setConnectTimeout($seconds)
@@ -321,10 +328,13 @@ MultiCurl::setCookieString($string)
321328
MultiCurl::setCookies($cookies)
322329
MultiCurl::setDigestAuthentication($username, $password = '')
323330
MultiCurl::setFile($file)
331+
MultiCurl::setFollowLocation($follow_location = true)
332+
MultiCurl::setForbidReuse($forbid_reuse = true)
324333
MultiCurl::setHeader($key, $value)
325334
MultiCurl::setHeaders($headers)
326335
MultiCurl::setInterface($interface)
327336
MultiCurl::setJsonDecoder($mixed)
337+
MultiCurl::setMaximumRedirects($maximum_redirects)
328338
MultiCurl::setOpt($option, $value)
329339
MultiCurl::setOpts($options)
330340
MultiCurl::setPort($port)

src/Curl/Curl.php

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1468,6 +1468,56 @@ public function reset()
14681468
$this->initialize();
14691469
}
14701470

1471+
/**
1472+
* Set auto referer
1473+
*
1474+
* @access public
1475+
*/
1476+
public function setAutoReferer($auto_referer = true)
1477+
{
1478+
$this->setAutoReferrer($auto_referer);
1479+
}
1480+
1481+
/**
1482+
* Set auto referrer
1483+
*
1484+
* @access public
1485+
*/
1486+
public function setAutoReferrer($auto_referrer = true)
1487+
{
1488+
$this->setOpt(CURLOPT_AUTOREFERER, $auto_referrer);
1489+
}
1490+
1491+
/**
1492+
* Set follow location
1493+
*
1494+
* @access public
1495+
*/
1496+
public function setFollowLocation($follow_location = true)
1497+
{
1498+
$this->setOpt(CURLOPT_FOLLOWLOCATION, $follow_location);
1499+
}
1500+
1501+
/**
1502+
* Set forbid reuse
1503+
*
1504+
* @access public
1505+
*/
1506+
public function setForbidReuse($forbid_reuse = true)
1507+
{
1508+
$this->setOpt(CURLOPT_FORBID_REUSE, $forbid_reuse);
1509+
}
1510+
1511+
/**
1512+
* Set maximum redirects
1513+
*
1514+
* @access public
1515+
*/
1516+
public function setMaximumRedirects($maximum_redirects)
1517+
{
1518+
$this->setOpt(CURLOPT_MAXREDIRS, $maximum_redirects);
1519+
}
1520+
14711521
public function getCurl()
14721522
{
14731523
return $this->curl;

src/Curl/MultiCurl.php

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,6 +1071,56 @@ public function verbose($on = true, $output = STDERR)
10711071
$this->setOpt(CURLOPT_STDERR, $output);
10721072
}
10731073

1074+
/**
1075+
* Set auto referer
1076+
*
1077+
* @access public
1078+
*/
1079+
public function setAutoReferer($auto_referer = true)
1080+
{
1081+
$this->setAutoReferrer($auto_referer);
1082+
}
1083+
1084+
/**
1085+
* Set auto referrer
1086+
*
1087+
* @access public
1088+
*/
1089+
public function setAutoReferrer($auto_referrer = true)
1090+
{
1091+
$this->setOpt(CURLOPT_AUTOREFERER, $auto_referrer);
1092+
}
1093+
1094+
/**
1095+
* Set follow location
1096+
*
1097+
* @access public
1098+
*/
1099+
public function setFollowLocation($follow_location = true)
1100+
{
1101+
$this->setOpt(CURLOPT_FOLLOWLOCATION, $follow_location);
1102+
}
1103+
1104+
/**
1105+
* Set forbid reuse
1106+
*
1107+
* @access public
1108+
*/
1109+
public function setForbidReuse($forbid_reuse = true)
1110+
{
1111+
$this->setOpt(CURLOPT_FORBID_REUSE, $forbid_reuse);
1112+
}
1113+
1114+
/**
1115+
* Set maximum redirects
1116+
*
1117+
* @access public
1118+
*/
1119+
public function setMaximumRedirects($maximum_redirects)
1120+
{
1121+
$this->setOpt(CURLOPT_MAXREDIRS, $maximum_redirects);
1122+
}
1123+
10741124
/**
10751125
* Destruct
10761126
*

tests/PHPCurlClass/PHPCurlClassTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4027,4 +4027,44 @@ public function testSetHeadersIndexedArray()
40274027
$this->assertEquals('Value15', $headers['Key15']);
40284028
$this->assertEquals('Value16', $headers['Key16']);
40294029
}
4030+
4031+
public function testSetAutoReferer()
4032+
{
4033+
$curl = new Curl();
4034+
$this->assertNull($curl->getOpt(CURLOPT_AUTOREFERER));
4035+
$curl->setAutoReferer(true);
4036+
$this->assertTrue($curl->getOpt(CURLOPT_AUTOREFERER));
4037+
}
4038+
4039+
public function testSetAutoReferrer()
4040+
{
4041+
$curl = new Curl();
4042+
$this->assertNull($curl->getOpt(CURLOPT_AUTOREFERER));
4043+
$curl->setAutoReferrer(true);
4044+
$this->assertTrue($curl->getOpt(CURLOPT_AUTOREFERER));
4045+
}
4046+
4047+
public function testSetFollowLocation()
4048+
{
4049+
$curl = new Curl();
4050+
$this->assertNull($curl->getOpt(CURLOPT_FOLLOWLOCATION));
4051+
$curl->setFollowLocation(true);
4052+
$this->assertTrue($curl->getOpt(CURLOPT_FOLLOWLOCATION));
4053+
}
4054+
4055+
public function testSetForbidReuse()
4056+
{
4057+
$curl = new Curl();
4058+
$this->assertNull($curl->getOpt(CURLOPT_FORBID_REUSE));
4059+
$curl->setForbidReuse(true);
4060+
$this->assertTrue($curl->getOpt(CURLOPT_FORBID_REUSE));
4061+
}
4062+
4063+
public function testSetMaximumRedirects()
4064+
{
4065+
$curl = new Curl();
4066+
$this->assertNull($curl->getOpt(CURLOPT_MAXREDIRS));
4067+
$curl->setMaximumRedirects(3);
4068+
$this->assertEquals(3, $curl->getOpt(CURLOPT_MAXREDIRS));
4069+
}
40304070
}

tests/PHPCurlClass/PHPMultiCurlClassTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4678,4 +4678,44 @@ public function testSetHeadersIndexedArray()
46784678
$this->assertEquals('Value16', $headers['Key16']);
46794679
}
46804680
}
4681+
4682+
public function testSetAutoReferer()
4683+
{
4684+
$multi_curl = new MultiCurl();
4685+
$this->assertNull($multi_curl->getOpt(CURLOPT_AUTOREFERER));
4686+
$multi_curl->setAutoReferer(true);
4687+
$this->assertTrue($multi_curl->getOpt(CURLOPT_AUTOREFERER));
4688+
}
4689+
4690+
public function testSetAutoReferrer()
4691+
{
4692+
$multi_curl = new MultiCurl();
4693+
$this->assertNull($multi_curl->getOpt(CURLOPT_AUTOREFERER));
4694+
$multi_curl->setAutoReferrer(true);
4695+
$this->assertTrue($multi_curl->getOpt(CURLOPT_AUTOREFERER));
4696+
}
4697+
4698+
public function testSetFollowLocation()
4699+
{
4700+
$multi_curl = new MultiCurl();
4701+
$this->assertNull($multi_curl->getOpt(CURLOPT_FOLLOWLOCATION));
4702+
$multi_curl->setFollowLocation(true);
4703+
$this->assertTrue($multi_curl->getOpt(CURLOPT_FOLLOWLOCATION));
4704+
}
4705+
4706+
public function testSetForbidReuse()
4707+
{
4708+
$multi_curl = new MultiCurl();
4709+
$this->assertNull($multi_curl->getOpt(CURLOPT_FORBID_REUSE));
4710+
$multi_curl->setForbidReuse(true);
4711+
$this->assertTrue($multi_curl->getOpt(CURLOPT_FORBID_REUSE));
4712+
}
4713+
4714+
public function testSetMaximumRedirects()
4715+
{
4716+
$multi_curl = new MultiCurl();
4717+
$this->assertNull($multi_curl->getOpt(CURLOPT_MAXREDIRS));
4718+
$multi_curl->setMaximumRedirects(3);
4719+
$this->assertEquals(3, $multi_curl->getOpt(CURLOPT_MAXREDIRS));
4720+
}
46814721
}

0 commit comments

Comments
 (0)