PHP XML oluşturma, zaman aşımı rastgele

2 Cevap php

Hiçbir fikrim yok. Bu görünüşte rasgele zaman aşımının neden olur. Bunlar da ben bunu içine yükleme am flaş bölünürler. Herkes önce böyle bir şey gördü mü?

<?php

require_once("../includes/class.database.php");
require_once("../includes/dbConnectInfo.inc");
require_once("../includes/functions.php");

include("../includes/conn.php");

$cat = $_GET['category'];

$result = mysql_query("SELECT * FROM media WHERE related_page_id=4 && type='copy' ORDER BY id ASC LIMIT 6");


$media = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
$media .= "<content>\n";
while($row = mysql_fetch_array($result))
{
	$media .="<member>\n";
	$body = $row[copy];

	if($row[title] == "")
		{
			$media .= "<title><![CDATA[";
			$media .= "Team";
			$media .="]]></title>\n";
		}elseif($row['path']==""){

			$name = explode("/",$row[title],2);

			$media .= "<name><![CDATA[";
			$media .= $name[0];
			$media .="]]></name>\n";

			$media .= "<job><![CDATA[";
			$media .= $name[1];
			$media .="]]></job>\n";
		} 

	if($body !="")
	{
	$media .="<bio><![CDATA[";
	$media .= $body;
	$media .= "]]></bio>\n";
	}

	$something = $row['id'];
	$result1 = mysql_query("SELECT * FROM media WHERE assets='$something'");
	$media .= "<images>";
	while($row1 = mysql_fetch_array($result1))
	{

		$img = explode("/",$row1[path],2);
		$media .= "<image url='$img[1]' />";

	}
	$media .= "</images>\n";
	$media .="</member>\n";
}	
$media .= "</content>";
echo $media;

?>

2 Cevap

Eğer kod set_time_limit(0); eklerseniz ne olur? Ben genellikle dahil tabloların altında uzun yürütme kodu bu satırı ekleyin.

Bu işler bu yana, bana ayrıntılı olsun.

Varsayılan olarak, PHP komut dosyaları sadece bu kadar uzun süre yürütmek için kurulur. Ben sınır PHP takıldığında 30 saniye olduğuna inanıyorum, ancak bu php.ini dosyasından değiştirilebilir. Ancak, tüm komut zaman aynı uzunlukta için çalışmasına izin vermek istemeyebilirsiniz - 30 saniye çoğu komut için iyi olabilir. set_time_limit fonksiyon tek bir komut dosyası için yürütme zamanı ayarlamanızı sağlar. Bu komut dosyasını çalıştırmak için saniye sayısını temsil eden bir tamsayı değeri alır, ama 0 değeri komut sonsuza kadar çalışacak demektir.

PHP için varsayılan zaman aşımı 30 saniyedir. Bu kod 30 saniye alıyor ise o zaman bazı sorunlar var sanırım! Eğer medya masaya indeksleri (related_page_id üzerinde tek + type ve assets bunu yapması gerektiğine dair bir) var.

Zaman sınırını artırarak daha sabitleme daha sorunu gizleme gibi, ve ben kesinlikle kullanmak olmaz set_time_limit(0);. Eğer mantıklı maksimum çeşit istiyorum orada, sizin ihtiyaçlarınıza bağlı olarak bir dakika, bir saat, bir gün ya da her neyse, olabilir.