PHP | Basit cURL Sınıfı

Kayıtlı Üye
Katılım
12 Mart 2012
Mesajlar
248
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, saintx (Ogün KARAKUŞ)
 
Üst Alt
Reklam
Reklam