_KV_
Новичок
Помогите с написанием экстеншена
Делая парсер xls файлов наткнулся на маханькую траблу.
Одна функция возвращает не то значение что должно если она используется после echo.
Выдержки из текста экстеншена
текст php скрипта:
результат:
CSS:
.xf0{ font-size:10pt;font-family: "Arial";background:#FFFFFF;text-align:left;vertical-align:bottom;}
.xf1{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf2{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf3{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf4{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf5{ font-size:10pt;font-family: "Arial";background:#FFFFFF;text-align:left;vertical-align:bottom;}
....
...
Charset:gzip <--- должно быть KOI8-R
Page "Price" parsing...
Ok
stdClass Object
(
[defcolwidth] => 2048
[rows] => stdClass Object
(
[lastcol] => 5
[lastrow] => 19
[row] => Array
.....
...
Делая парсер xls файлов наткнулся на маханькую траблу.
Одна функция возвращает не то значение что должно если она используется после echo.
Выдержки из текста экстеншена
PHP:
xlsWorkBook* xls_find_workbook(pval *id TSRMLS_DC)
{
int type;
xlsWorkBook *wb;
convert_to_long(id);
wb = zend_list_find(Z_LVAL_P(id), &type);
if(!wb) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find identifier %d", id);
return NULL;
}
if (type!=le_xls_wb) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Identifier is not WorkBook");
return NULL;
}
return wb;
}
....
....
PHP_FUNCTION(xls_getcharset)
{
pval *id;
xlsWorkBook *wb;
char* charset;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters(ht, 1, &id)==FAILURE) {
WRONG_PARAM_COUNT;
}
wb=xls_find_workbook(id TSRMLS_CC);
if(wb==NULL) RETURN_FALSE;
charset=wb->charset;
RETURN_STRING(charset,1);
}
PHP:
$wb=xls_open("e:/wwwroot/xls/test2.xls","KOI8-R");
$list=0;
echo "CSS:<pre>".xls_getCSS($wb)."</pre><br>";
echo "Charset:".xls_getcharset($wb)."<br>";
echo "Page \"".xls_getsheetname($wb,$list)."\" parsing...<br>";
$ws=xls_getworksheet($wb,$list);
if (xls_parseworksheet($ws))
{
echo "Ok<br>";
$fws=xls_fetch_worksheet($ws);
echo "<pre>";
print_r($fws);
echo "</pre>";
}
CSS:
.xf0{ font-size:10pt;font-family: "Arial";background:#FFFFFF;text-align:left;vertical-align:bottom;}
.xf1{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf2{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf3{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf4{ font-size:10pt;font-family: "Arial Cyr";background:#FFFFFF;text-align:left;vertical-align:bottom;color:#000000;}
.xf5{ font-size:10pt;font-family: "Arial";background:#FFFFFF;text-align:left;vertical-align:bottom;}
....
...
Charset:gzip <--- должно быть KOI8-R
Page "Price" parsing...
Ok
stdClass Object
(
[defcolwidth] => 2048
[rows] => stdClass Object
(
[lastcol] => 5
[lastrow] => 19
[row] => Array
.....
...