• 20-09-2018, 17:44:50
    #1
    Arkadaşlar öncelikle programlamadan çok az anlıyorum.

    Elimde bir bot var. Gayet güzel çalışıyor çalışmasına ama image doyalarını uzantısı olmadan çekiyor. Wordpress upload klasöründe;

    0f63a541b43c56a1fe4dcb5956acd7cd

    böyle ismi olan resim dosyaları var, uzantıları yok.

    Ben uzantılarını el ile eklediğimde görünür hale geliyor. Bu sorunu çözmek için nereye bakmam lazım tam olarak?

    Şimdiden teşekkür ederim.

    Bot js, bootstrap vs. kullanılarak kodlanmış.
  • 20-09-2018, 17:48:35
    #2
    Büyük ihtimal resimleri aldığınız yer resimleri uzantısız veriyordur özel url yapısı ile.Komple bi incelemek lazım.
  • 20-09-2018, 17:49:47
    #3
    Kodu görmek lazım. Buradan bir şey söylemek kendi adıma pek mümkün değil.

    Kullandığınız bota ait içeriği vs yazarsanız daha iyi olur.

    Bu arada PHP kategori daha uygun olacaktır diye düşünüyorum.
  • 20-09-2018, 18:32:19
    #4
    @hyperft hocamın affına sığınarak bende bir şey sormak istiyorum .

    kaynak kodunda resim linki bu şekilde görünüyor
    <img itemprop="image" src="https://imageserver.***.com/select.php?imageid=261633&width=180&isWatermarked= true&pagecount=152" title=


    resim linkini bu şekilde alıp sonuna .jpg eklemeye çalışıyorum.
    $resmim = $this->parseSearch('<img itemprop="image" src="', '"', $book);
    $image = $resmim.".jpg";
    continue;


    ama botu çalıştırdığımda "Array to string conversion" hatası veriyor . Bu hata bu işlemlerden dolayı mıdır?
  • 20-09-2018, 19:37:32
    #5
    OrdanBurdan adlı üyeden alıntı: mesajı görüntüle
    @hyperft hocamın affına sığınarak bende bir şey sormak istiyorum .

    kaynak kodunda resim linki bu şekilde görünüyor
    <img itemprop="image" src="https://imageserver.***.com/select.php?imageid=261633&width=180&isWatermarked= true&pagecount=152" title=


    resim linkini bu şekilde alıp sonuna .jpg eklemeye çalışıyorum.
    $resmim = $this->parseSearch('<img itemprop="image" src="', '"', $book);
    $image = $resmim.".jpg";
    continue;


    ama botu çalıştırdığımda "Array to string conversion" hatası veriyor . Bu hata bu işlemlerden dolayı mıdır?
    Burada parseSearch fonksiyonundan dönen değer array olduğu için string ile birleşimi yapılmaz hatası veriyor. debug yapmak adına dönen değer kısmının sonucunu eklersen düzenleme için daha iyi fikir verebilirim.

    $resmim = $this->parseSearch('<img itemprop="image" src="', '"', $book);
    print_r($resmim);exit; // Dönen değer
    $image = $resmim.".jpg";
    continue;
  • 20-09-2018, 19:43:37
    #6
    $resmim = $this->parseSearch('<img itemprop="image" src="', '"', $book); // tum img tagları parçalandı, bir array oldu.
    $image = $resmim[0].".jpg"; // arrayın ilkini alın.
    continue;
  • 20-09-2018, 20:05:33
    #7
    Teşekkürler hocam ikinizede . $resmim[0] yapınca hata gitti.
  • 21-09-2018, 07:36:13
    #8
    Aşağıdaki kodun baya öncülü ve ardılı var ama ilgili olarak düşündüğüm parçası burası.

    @$dom->loadHTML('<?xml encoding="utf-8" ?>' . $body);
    	    $url = parse_url($_GET['address']);
    	    $url = $url['scheme'] . "://" . $url['host'];
    	    $head = $dom->getElementsByTagName('head')->item(0);
    	    $base = $dom->getElementsByTagName('base')->item(0);
    	    $html_base_url = null;
    	    if (is_null($base)) {
    		$base = $dom->createElement('base');
    		$base->setAttribute('href', $url);
    
    		if (!empty($head)) {
    		    if ($head->hasChildNodes()) {
    			$head->insertBefore($base, $head->firstChild);
    		    } else {
    			$head->appendChild($base);
    		    }
    		}
    	    } else {
    		$html_base_url = $base->getAttribute('href');
    	    }
    
    
    	    $imgs = $dom->getElementsByTagName('img');
    	    if ($imgs->length) {
    		foreach ($imgs as $item) {
    		    $item->setAttribute('src', $this->create_absolute_url(
    				    trim($item->getAttribute('src')), urldecode($_GET['address']), $html_base_url
    		    ));
    		}
    	    }
    
    	    $as = $dom->getElementsByTagName('a');
    	    if ($imgs->length) {
    		foreach ($as as $item) {
    		    $item->setAttribute('href', $this->create_absolute_url(
    				    trim($item->getAttribute('href')), urldecode($_GET['address']), $html_base_url
    		    ));
    		}
    	    }
    
    	    $all_elements = $dom->getElementsByTagName('*');
    	    foreach ($all_elements as $item) {
    		if ($item->hasAttributes()) {
    		    foreach ($item->attributes as $name => $attr_node) {
    			if (preg_match("/^on\w+$/", $name)) {
    			    $item->removeAttribute($name);
    			}
    		    }
    		}
    	    }
    
    	    $html = $dom->saveHTML();
    	    echo $html;
    	    wp_die();
    	}
        }
    Burdan bi yerden benim indirilen img dosyalarına.jpeg uzantısını eklemem mümkün müdür?

    'body' => substr ($image_url, strpos($image_url, 'base64') + 7)
    ya da şurdan mümkün müdür?
  • 21-09-2018, 09:25:45
    #9
    HyperFt adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki kodun baya öncülü ve ardılı var ama ilgili olarak düşündüğüm parçası burası.

    @$dom->loadHTML('<?xml encoding="utf-8" ?>' . $body);
    	    $url = parse_url($_GET['address']);
    	    $url = $url['scheme'] . "://" . $url['host'];
    	    $head = $dom->getElementsByTagName('head')->item(0);
    	    $base = $dom->getElementsByTagName('base')->item(0);
    	    $html_base_url = null;
    	    if (is_null($base)) {
    		$base = $dom->createElement('base');
    		$base->setAttribute('href', $url);
    
    		if (!empty($head)) {
    		    if ($head->hasChildNodes()) {
    			$head->insertBefore($base, $head->firstChild);
    		    } else {
    			$head->appendChild($base);
    		    }
    		}
    	    } else {
    		$html_base_url = $base->getAttribute('href');
    	    }
    
    
    	    $imgs = $dom->getElementsByTagName('img');
    	    if ($imgs->length) {
    		foreach ($imgs as $item) {
    		    $item->setAttribute('src', $this->create_absolute_url(
    				    trim($item->getAttribute('src')), urldecode($_GET['address']), $html_base_url
    		    ));
    		}
    	    }
    
    	    $as = $dom->getElementsByTagName('a');
    	    if ($imgs->length) {
    		foreach ($as as $item) {
    		    $item->setAttribute('href', $this->create_absolute_url(
    				    trim($item->getAttribute('href')), urldecode($_GET['address']), $html_base_url
    		    ));
    		}
    	    }
    
    	    $all_elements = $dom->getElementsByTagName('*');
    	    foreach ($all_elements as $item) {
    		if ($item->hasAttributes()) {
    		    foreach ($item->attributes as $name => $attr_node) {
    			if (preg_match("/^on\w+$/", $name)) {
    			    $item->removeAttribute($name);
    			}
    		    }
    		}
    	    }
    
    	    $html = $dom->saveHTML();
    	    echo $html;
    	    wp_die();
    	}
        }
    Burdan bi yerden benim indirilen img dosyalarına.jpeg uzantısını eklemem mümkün müdür?

    'body' => substr ($image_url, strpos($image_url, 'base64') + 7)
    ya da şurdan mümkün müdür?
    'body' => substr ($image_url, strpos($image_url, 'base64') + 7) . '.jpg'
    olarak deneyin isterseniz.