Kullandığınız yazılım diliyle ilgili örnek projeleri, kodları incelerken bazen bir fonksiyon görürsünüz ve "Aaa ben bu işlemi yapmak için bir sürü kod yazıyordum, zaten hazır fonksiyonu varmış" dersiniz. Ben bu başlığı yazı dizisi haline getirerek fazla bilinmeyen ama bazı durumlarda işimizi kolaylaştıracak fonksiyonları tanıtmaya çalışacağım. Makale içerikleri temel seviyeye hitap ediyor olacak. Daha ileri seviyeye sahip Php geliştiricileri için unuttuklarını hatırlama, gözden kaçırdıklarını öğrenme gibi pozitif etkileri olabileceğini söyleyebilirim. Lafı daha fazla uzatmadan http_build_query fonksiyonunu anlatmaya başlayayım.
http_build_query :
Hazırladığımız veya varolan diziyi / nesneyi query string formatına dönüştürmek için bu fonksiyonu kullanabiliriz. Fonksiyona 3 parametre gönderebiliyoruz. İlk parametreye tek boyutlu veya çok boyutlu dizi (array) / nesne (object) atamamız gerekiyor. İkinci parametre; dizinin index değerinde sayısal tanımlar varsa bunların önüne bir ifade ekleyebilmemizi sağlıyor. (user1,user2 vb.) 3. parametre ise query string'te parametreleri ayrıştırmaya yarayan & işaretinin yerine herhangi bir başka değer atamımızı sağlıyor.
Örnek olarak http request üzerinden çalışan web servisimiz olduğunu düşünelim. Bu servise istek göndermemiz gereken adres ve parametlerin olması gerekiyor. Eğer yazılımcının http_build_query fonksiyonundan haberi yoksa aşağıda ki koda benzer bir şey yapmaya çalıştığını göreceğiz. - Aslında benzer bir koda denk geldiğim için bu makaleyi yazıyorum
-
Burada gereksiz bir döngü içerisine girdik. Ardından $i değişkeni ile & operatörünün ilk parametrenin önününe gelmemesi için if koşulu yazdık ve $query_string değişkeninin değerini güncelledik. Aynı işlemi http_build_query fonksiyonu ile yapmayı denersek;
Her iki kod aynı çıktıyı vermesine rağmen http_build_query fonksiyonu ile hem döngüden kurtuluyoruz hem de daha temiz ve düzenli kod yazımı gerçekleştiriyoruz. Ayrıca burada $base_url ve $query_string değişkenlerinin değerini nokta operatörüyle birleştirmek yerine sprintf fonksiyonu ile birleştirdik.
Kaynak : WebdeDers.Com
Bu makale ilginizi çektiyse daha önce paylaştığım :
http_build_query :
Hazırladığımız veya varolan diziyi / nesneyi query string formatına dönüştürmek için bu fonksiyonu kullanabiliriz. Fonksiyona 3 parametre gönderebiliyoruz. İlk parametreye tek boyutlu veya çok boyutlu dizi (array) / nesne (object) atamamız gerekiyor. İkinci parametre; dizinin index değerinde sayısal tanımlar varsa bunların önüne bir ifade ekleyebilmemizi sağlıyor. (user1,user2 vb.) 3. parametre ise query string'te parametreleri ayrıştırmaya yarayan & işaretinin yerine herhangi bir başka değer atamımızı sağlıyor.
Örnek olarak http request üzerinden çalışan web servisimiz olduğunu düşünelim. Bu servise istek göndermemiz gereken adres ve parametlerin olması gerekiyor. Eğer yazılımcının http_build_query fonksiyonundan haberi yoksa aşağıda ki koda benzer bir şey yapmaya çalıştığını göreceğiz. - Aslında benzer bir koda denk geldiğim için bu makaleyi yazıyorum
PHP:
$base_url = 'http://www.webdeders.com/webservice/send_sms.php';
$params = array(
'module' => 'smsGonder',
'responseType' => 'JSON',
'uniqId' => 'A1K4PS951',
'gsm' => '537250XXXX',
'text' => 'Onay Kodunuz: XXXX',
);
$i = 0;
$query_string = '';
foreach($params AS $index => $value)
{
if($i != 0) { $query_string .= '&'; }
$query_string .= $index . '=' . $value;
$i++;
}
$url = $base_url . '?' . $query_string;
Burada gereksiz bir döngü içerisine girdik. Ardından $i değişkeni ile & operatörünün ilk parametrenin önününe gelmemesi için if koşulu yazdık ve $query_string değişkeninin değerini güncelledik. Aynı işlemi http_build_query fonksiyonu ile yapmayı denersek;
PHP:
$base_url = 'http://www.webdeders.com/webservice/send_sms.php';
$params = array(
'module' => 'smsGonder',
'responseType' => 'JSON',
'uniqId' => 'A1K4PS951',
'gsm' => '537250XXXX',
'text' => 'Onay Kodunuz: XXXX',
);
$query_string = http_build_query($params);
$url = sprintf('%s?%s',$base_url, $query_string);
Her iki kod aynı çıktıyı vermesine rağmen http_build_query fonksiyonu ile hem döngüden kurtuluyoruz hem de daha temiz ve düzenli kod yazımı gerçekleştiriyoruz. Ayrıca burada $base_url ve $query_string değişkenlerinin değerini nokta operatörüyle birleştirmek yerine sprintf fonksiyonu ile birleştirdik.
Kaynak : WebdeDers.Com
Bu makale ilginizi çektiyse daha önce paylaştığım :
- uniqid
- filter_var
- compact & extract
- similar_text
- parse_ini_file
- Json_encode & Json_decode & json_last_error
- func_num_args & func_get_args & func_get_arg
- parse_url