• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

Basit cURL Sınıfı

Konuyu Okuyan Kişiler (0)

saintx

webmaster.tc
Katılım
24 Ağu 2012
Mesajlar
111
Beğeniler
0
Konum
Akhisar
#1
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.webmaster.tc/';
	
	$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Ş)
 

TeknoTost

webmaster.tc
Katılım
20 Ağu 2012
Mesajlar
386
Beğeniler
0
#3
Beni aşıyor bunlar hiç bir şey anlamadım ama ellerine sağlık
 

saintx

webmaster.tc
Katılım
24 Ağu 2012
Mesajlar
111
Beğeniler
0
Konum
Akhisar
#4
sağolun arkadaşlar, vakit buldukça böyle basit, kullanışlı sınıflar yazıp sizlerin işlerini kolaylaştırma amaçlı geliştirme amaçlı şeyler paylaşacağım. :)