ayrat9
Новичок
spreadsheet excel writer: проблемы с выводом информации
при открытии генерируемого xls файла вместо данных выводится сообщение об ошибке:
Warning: realpath() [function.realpath]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/home/u151063/) in /home/u151063/php/lib/php/System.php on line 474
Warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/u151063/) in /home/u151063/php/lib/php/OLE/PPS/File.php on line 88
что это означает?
-~{}~ 11.12.09 23:13:
некоторые подробности
php-код в исполняемом файле обрабатывается php-интерпретатором в виде модуля cgi.
pear подключен, инсталлированные пакеты вынесены за корень сайта
-~{}~ 11.12.09 23:50:
какого вида должна быть строка в php.ini, отвечающая за подключение pear пакетов?
-~{}~ 12.12.09 03:06:
помогло ручное переназначение папки для временных php файлов
в листинге файла system.php - строка return realpath('/tmp')
-~{}~ 12.12.09 05:03:
как переключаться между листами ?
-~{}~ 12.12.09 07:20:
Косяк №1
заполняется полностью только первый лист, в остальных листах прописывается только название главной рубрики
Косяк №2
если артикул имеет ведущий или последней цифрой ноль - то он почему-то обрезается
при открытии генерируемого xls файла вместо данных выводится сообщение об ошибке:
Warning: realpath() [function.realpath]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/home/u151063/) in /home/u151063/php/lib/php/System.php on line 474
Warning: tempnam() [function.tempnam]: open_basedir restriction in effect. File() is not within the allowed path(s): (/home/u151063/) in /home/u151063/php/lib/php/OLE/PPS/File.php on line 88
что это означает?
-~{}~ 11.12.09 23:13:
некоторые подробности
php-код в исполняемом файле обрабатывается php-интерпретатором в виде модуля cgi.
pear подключен, инсталлированные пакеты вынесены за корень сайта
-~{}~ 11.12.09 23:50:
какого вида должна быть строка в php.ini, отвечающая за подключение pear пакетов?
-~{}~ 12.12.09 03:06:
помогло ручное переназначение папки для временных php файлов
в листинге файла system.php - строка return realpath('/tmp')
-~{}~ 12.12.09 05:03:
как переключаться между листами ?
-~{}~ 12.12.09 07:20:
Код:
sql_connect();
require_once "Spreadsheet/Excel/Writer.php";
$xls =& new Spreadsheet_Excel_Writer();
$xls->send('price_'.date('m-d-Y').'.xls');
$x=0;
$y=3;
$sheet=array();
$sql_query="SELECT id, name, url FROM ".$sql_pref."_cat_rubs WHERE level='1' ORDER BY code";
$sql_res=mysql_query($sql_query, $conn_id);
while (list($mainrub_id, $mainrub_name, $mainrub_url)=mysql_fetch_row($sql_res))
{
$sheet[$x]=& $xls->addWorksheet($mainrub_url);
$MainHeadingFormat =& $xls->addFormat();
$MainHeadingFormat->setFontFamily('Arial');
$MainHeadingFormat->setBold();
$MainHeadingFormat->setSize('16');
$sheet[$x]->write(0,0,$mainrub_name,$MainHeadingFormat);
$colHeadingFormat =& $xls->addFormat();
$colHeadingFormat->setBold();
$colHeadingFormat->setFontFamily('Helvetica');
$colHeadingFormat->setSize('11');
$colNames = array('www','vvv','yyy','uuu');
$sheet[$x]->writeRow(1,0,$colNames,$colHeadingFormat);
rubsub($mainrub_id);
$x++;
}
function rubsub($rub_parent_id)
{
global $sql_pref, $conn_id;
global $y, $sheet, $xls, $x;
$sheet[$x]->select();
$RubHeadingFormat =& $xls->addFormat();
$RubHeadingFormat->setBold();
$sql_query1="SELECT id, name, level FROM ".$sql_pref."_cat_rubs WHERE parent_id='".$rub_parent_id."' ORDER BY code";
$sql_res1=mysql_query($sql_query1, $conn_id);
while (list($id1, $name1, $level1)=mysql_fetch_row($sql_res1))
{
$name1=str_replace(""", "\"", StripSlashes($name1));
$sheet[$x]->write($y,0,$name1,$RubHeadingFormat);
$y++;
arts($id1, $level1);
rubsub($id1);
}
}
function arts($rub_id, $level2)
{
global $sql_pref, $conn_id;
global $usd_kurs, $eur_kurs;
global $y, $sheet, $xls, $x;
$sheet[$x]->select();
$colTextFormat = & $xls->addFormat();
$colArtikulFormat = & $xls->addFormat();
$sheet[$x]->setColumn(0,0,10);
$sheet[$x]->setColumn(1,1,12);
$sheet[$x]->setColumn(2,2,80);
$colTextFormat->setTextWrap();
$colArtikulFormat->setAlign('center');
$sql_query_1="SELECT ca.id, ca.artikul, ca.name, cp.id, cp.name, cp.name_eng FROM ".$sql_pref."_cat_arts AS ca, ".$sql_pref."_producers AS cp WHERE ca.parent_id='".$rub_id."' AND cp.id=ca.producer_id AND ca.enable='Yes' AND ca.mirror_id='0' ORDER BY ca.code";
$sql_res_1=mysql_query($sql_query_1, $conn_id);
while (list($artid, $artartikul, $artname, $artproducer_id, $artproducer, $artproducer_eng)=mysql_fetch_row($sql_res_1))
{
$artname=str_replace(""", "\"", StripSlashes($artname));
$artproducer=StripSlashes($artproducer);
$artproducer_eng=StripSlashes($artproducer_eng);
if (empty($artproducer_eng)) $artproducer_eng=$artproducer;
$sql_query_2="SELECT price, valut FROM ".$sql_pref."_cat_price WHERE artikul='".$artartikul."' AND producer_id='".$artproducer_id."'";
$sql_res_2=mysql_query($sql_query_2, $conn_id);
list($artprice, $artvalut)=mysql_fetch_row($sql_res_2);
$sheet[$x]->write($y,0,str_replace(",", ".", $artartikul),$colArtikulFormat);
$sheet[$x]->write($y,1,$artproducer_eng,$colArtikulFormat);
$sheet[$x]->write($y,2,$artname,$colTextFormat);
$sheet[$x]->write($y,3,$artprice." р.",$colArtikulFormat);
$y++;
}
}
sql_close();
$xls->close();
заполняется полностью только первый лист, в остальных листах прописывается только название главной рубрики
Косяк №2
если артикул имеет ведущий или последней цифрой ноль - то он почему-то обрезается