PHP | Basit cURL Sınıfı

  • HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding

saintx

Kayıtlı Üye
Joined
Mar 12, 2012
Messages
250
Reaction score
0
Points
18
Age
29
Website
saintx.net
Merhaba arkadaşlar,



Bazı zamanlarda ihtiyaç duyduğumuz cURL için basit bir yapı hazırladım.Umarım işinize yarar.



Yapının bazı temel özelliklerini saymak gerekirse ;

-> Bağlantı yapılan sayfanın içeriğini, header bilgisini sorunsuzca almaktadır.

-> Bağlantılarınızda opsiyonel olarak POST bilgisi gönderebilme imkanınız bulunmaktadır.

-> Bağlantılarınızdaki karakter bozuklukları için iconv kullanmanıza imkan sağlamaktadır.



Sınıfa ait kod parçacıkları;

PHP:
<?php

	

	class SX_SIMPLE_CURL {

		/* Class Variable(s) */

		public $curl_iconv_settings;

		

		/* Class Method(s) */

		public function __construct() {

			$this->curl_iconv_settings = array(

				'in_charset'  => 'ISO-8859-1',

				'out_charset' => 'UTF-8'

			);

		}

		

		/*

		* cURL bağlantı işlemlerinizi yapar.Post veri göndermenizi sağlar.

		*

		* @param ($url): cURL bağlantısı yapılacak url (string)

		* @param ($use_iconv): iconv kullanılsın mı ? (ön tanımlı false) (boolean)

		* @param ($postVariable): post işlemi yapılsın mı ? (Eğer post işlemi yapılacaksa veri tipi string olmalıdır.) (string)

		*

		* @return (array)

		*/

		public function curl($url, $use_iconv=false, $postVariable=null) {

			$curl = curl_init();

			$data = array();

			curl_setopt($curl, CURLOPT_URL, $url);

			curl_setopt($curl, CURLOPT_HEADER, false);

			curl_setopt($curl, CURLOPT_NOBODY, false);

			curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);

			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

			curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);

			curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 60);

			curl_setopt($curl, CURLOPT_TIMEOUT, 60);

			curl_setopt($curl, CURLOPT_MAXREDIRS, 10);

			if(isset($postVariable) && is_string($postVariable)):

				curl_setopt($curl, CURLOPT_POST, true);

				curl_setopt($curl, CURLOPT_POSTFIELDS, $postVariable);

			endif;

			curl_setopt($curl, CURLOPT_VERBOSE, true);

			$data['content'] = curl_exec($curl);

			$data['content'] = ($use_iconv) ? $this->curl_iconv($data['content']) : $data['content'];

			$data['errno']   = curl_errno($curl);

			$data['err_msg'] = curl_error($curl);

			$data['header']  = curl_getinfo($curl);

			curl_close($curl);

			return $data;

		}

		

		/*

		* SX_SIMPLE_CURL::curl() metotunda kullanılan yardımcı metottur.İstenilirse iconv işlemlerindede kullanılabilir.

		*

		* @param ($str) Çeviri yapılacak veri (string)

		*

		* @return (string)

		*/

		public function curl_iconv($str) {

			return iconv($this->curl_iconv_settings['in_charset'], $this->curl_iconv_settings['out_charset'], $str);

		}

		

	}

	

?>



Sınıf ile yapılmış örnek bir uygulama;

PHP:
<?php

	

	$SX   = new SX_SIMPLE_CURL();

	

	$url  = 'http://www.r10.net/';

	

	$curl = $SX->curl($url);

	

	echo $curl['content']; // Bağlandığımız sayfanın sayfa içeriği

	

	echo $curl['header']; // Bağlandığımız sayfanın header bilgisi

	

?>



Sormak istediğiniz tüm soruları konu altına mesaj olarak yazabilirsiniz.Özel mesaj ile gönderdiğiniz sorulara cevap vermeyeceğim.Nedeni ise sorularınızdan tüm herkesi yararlanması için lütfen konuyu kullanınız.



Saygılarımla, (Ogün KARAKUŞ)
 
Back
Top Bottom
Reklam
Reklam