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

PHP | Basit cURL Sınıfı

saintx

Kayıtlı Üye
Katılım
12 Mart 2012
Mesajlar
250
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Ş)
 
Geri
Üst