⏩ OldSchoolKO ✅ | " VALHALLA " 2.000.000 TL ÖDÜL ⭐ 3 YIL ARADAN SONRA ✅ v.1098 MYKO EFSANESİ ⚔ OFFICIAL 17.05.2024 - 21:00 ⏪
Cuceko

PHP | Basit cURL Sınıfı

  •         

            

            

            

            

  • HyperFilter | DoS Protection | DDoS Protection | DoS Mitigation | DDoS Mitigation | AntiDoS | AntiDDoS | Proxy Shielding
S Çevrimdışı

saintx

Kayıtlı Üye
12 Mart 2012
250
0
18
28
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Ş)