lostyazilim
tr.link

cURL 'de dört işlem

7 Mesajlar 324 Okunma
lstbozum
tr.link

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)

Merhabalar arkadaşlar, kendimi geliştirmek için bir site yazarken bir yerde takıldım ve araştırmalarım sonucunda bir yere varamadım.

Ben bir site üzerinden veri çekiyorum, gelen verilerde sayısal veriler mevcut ben bu sayısal veriler ile kendi veritabanımdaki sayıları veya belirlediğim bir sayıyı toplamaya ve çarpmaya çalışıyorum fakat sonuç 0 olarak dönüyor. Bunun sebebi nedir acaba.  

$baglan = curl($row['link']);
$sonuc = ara('<div class="heading-new-bar-col-item">', '</div>', $baglan);
$sonuc = str_replace(",",".",$sonuc);
echo $sonuc[0];

Kod bu şekilde sonuç veriyor. Örnek veriyorum sonuç 70 olarak döndü. 

$yenideger=$sonuc[0];
$son=$yenideger*2;
echo $son;

Burada sonuç ile 2 yi çarpıyorum. 140 elde etmek istiyorum fakat sonuç 0 olarak dönüyor. Bu sorunu nasıl çözebilirim.

 

 

wmaraci
reklam

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)

curl ile almış olduğun sayı muhtemelen string bir ifade şu şekilde integer'a dönüştürüp denemelisin intval($string_ifade);

$yenideger=$sonuc[0];
$son=intval($yenideger)*2;
echo $son;

Mesaj 1 defa düzenlendi. Son düzenleyen: VipTema (20.05.2024 05:00)

 

 

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)

VipTema adlı üyeden alıntı

curl ile almış olduğun sayı muhtemelen string bir ifade şu şekilde integer'a dönüştürüp denemelisin intval($string_ifade);

$yenideger=$sonuc[0];
$son=intval($yenideger)*2;
echo $son;

Malesef aynı şekilde sonucu değişmedi. Hala 0 olarak alıyor 0*2 olduğundan cevap yine 0 dönüyor. Ama dört işlem yapmadığım zaman normal değerini yazıyor. Hala çözemedim çok garip bir şekilde.

 

 

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)

Kodlarınızın tamamını paylaşırsanız incelemek isterim.

 

 

wmaraci
wmaraci

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)

VipTema adlı üyeden alıntı

Kodlarınızın tamamını paylaşırsanız incelemek isterim.

Function şu şekilde :

	function curl($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    //curl_setopt($ch,CURLOPT_POST,true);//Post edersek
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);//Tarayıcı bilgimizi gönderelim
     
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//localden bile bağlanmak için
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//localden bile bağlanmak için
    //curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
    // POST request (POST isteði) cevabý 
    $response = @curl_exec($ch);
    curl_close($ch);
    return str_replace(array("\n","\t","\r"), null, $response);
}
	function ara($bas, $son, $yazi)
{
    @preg_match_all('/' . preg_quote($bas, '/') .
    '(.*?)'. preg_quote($son, '/').'/i', $yazi, $m);
    return @$m[1];
}

sonrasında 

<?php
// şuan ki değerini curl ile çekme
    $baglan = curl($row['link']);
    //Kullanımı
	$sonuc = ara('<div class="heading-new-bar-col-item">', '</div>', $baglan);
	$sonuc = str_replace(",",".",$sonuc);
	echo $sonuc[0].'₺';   // burada sonuç doğru olarak geliyor örn: 70 olarak geliyor.
	$yenideger=$sonuc[0];
	$son=$yenideger*2;
        echo $son; // burada 0 olarak geliyor.
 ?>

bu şekilde veri çekiyorum. $son=$yenideger*2 yaptığımda son 0 olarak dönüyor. Fakat $yenideger i ekrana yazdırdığımda veriyi doğru çekiyor.

Mesaj 1 defa düzenlendi. Son düzenleyen: 4everturk (21.05.2024 09:29)

 

 

VipTema VipTema Vip Tema Web Tasarım Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1393
  • Beğeniler 704 / 703
  • Ticaret 21, (%100)

linki yazmamışsınız özel değilse linki de paylaşır mısınız?

 

 

4everturk 4everturk WM Aracı Kullanıcı
  • Üyelik 31.10.2017
  • Yaş/Cinsiyet 30 / E
  • Meslek Amatör Yazılımcı
  • Konum Adana
  • Ad Soyad C** A**
  • Mesajlar 173
  • Beğeniler 41 / 28
  • Ticaret 0, (%0)

VipTema adlı üyeden alıntı

linki yazmamışsınız özel değilse linki de paylaşır mısınız?

hocam ilginize teşekkürler. şu şekilde çözdüm;

$deger = 1; // buraya ne yazarsam onun ile çarpıyor.
foreach ($sonuc[0] as $value) {
    echo "Değer: $value\n";
    $deger *= $value;
    echo "Ürün: $deger\n";
}

echo "Çarpma işlemi sonucu: " . $deger;

döngü ile çözüm oldu ilginize teşekkür ederim tekrardan.

 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al