PHP: Bir görüntüyü çekme ve çıkışını değiştirerek

1 Cevap php

Benim görüntüler için bir yeniden boyutlandırma komut dosyası kullanmak istiyorum (Timthumb). Ben ilk görüntü bir yazı bulunan veritabanından çekin ve komut için ona yol eklemek yanı sıra bazı ekstra talimatlar çalışıyorum:

	<?php
		$content = $post->post_content;
		preg_match_all('/src=\"https?:\/\/[\S\w]+\"/i', $content, $matches, PREG_SET_ORDER);
		foreach($matches as $e)
		echo '<img src="http://site/scripts/timthumb.php?'.$e[0].'&h=320&w=214&zc=1" title="" alt="">';
		{
		}
	?>

Bu tüm ihtiyacım yankılanan edilirken, etiketi, görüntünün yolunu (Ben görüntüyü algılamak gerekir aynı çift tırnak) eksik bazı çift tırnak ortasında, ekliyor:

<img src="http://site/scripts/timthumb.php?src="http://site/images/image.jpg"&h=320&w=214&zc=1" title="" alt="">

Yani benim sorular şunlardır:

  1. How would you do to remove those double quotes (while I need them in a first moment to search for a pattern) ?
  2. And, how would you do to pull only the first image in the post ?

Herhangi bir giriş için çok teşekkürler

1 Cevap

Öncelikle, sadece ihtiyacınız biraz, URL'yi kendisini yakalamak için parantez kullanın. Sadece ilk görüntü gerekiyorsa İkincisi, o sadece çok preg_match_all daha preg_match kullanın:

$content = $post->post_content;
if (preg_match('/src=\"(https?:\/\/[\S\w]+)\"/i', $content, $match))
{
    echo '<img src="http://site/scripts/timthumb.php?'.
        urlencode($match[1]).'&h=320&w=214&zc=1" title="" alt="">';
}

Regex URL kısmı () ile işaretlenmiş nasıl Not - Bu ilk ifadeyi parantez olduğunu gibi, $ maç dizi elemanı 1 olacaktır.

Ben de o maçta bir şey doğru bir URL kullanmak için kodlanmış olduğundan emin olmak için resim URL'sini urlencoded ettik.