Я сомневаюсь, что вы хотите, чтобы gz-кодировал запись за записью, как эта.
Если вам нужно, чтобы он был разархивирован, рассмотрите его сопоставление, а затем напишите один раз в конце или разархивируйте файл после создания.
$productList = '';
while($row = mysql_fetch_array($result)) {
$product = $row['products_id']
. ' ' . $row['products_name']
. ' ' . $row['manufacturers_name']
. ' ' . $row['products_model']
//. ' ' . $row['products_sku']
. ' ' . zen_href_link('product_info', 'cPath=' . $cPath . '&products_id=' . $row['products_id'])
. ' ' . number_format($row['products_price'],2)
. ' ' . strip_tags(zen_get_products_description($row['products_id']))
. ' ' . HTTP_SERVER . '/' .DIR_WS_IMAGES . $row['products_image']
. ' ' . 'electronics'
. "\r\n";
$productList .= $product;
}
fwrite($fh, gzencode(utf8_encode($product),9));
fclose($fh);