PHP Problema script ma in locale funziona
Salve ragazzi,
utilizzo da poco altervista ma lo trovo un servizio davvero incredibile.
Stavo provando certi script in locale attraverso xampp (l'apertura e la lettura di file Excel).
Questi script in locale funzionano perfettamente, tuttavia uploadando su altervista e provandoli non mi funziona.
L'errore è:
Codice PHP:
Fatal error: Class 'PHPExcel_Shared_ZipStreamWrapper' not found in /membri/dickymoser/classes/PHPExcel/Autoloader.php on line 31
Per sicurezza comunque ho messo i file (script e cartella che contiene file utilizzati dallo script) nella cartella root.
Ho spulciato un po' su internet un paio di ore ieri sera ma non sono riuscito a risolvere.
Se ho capito bene il problema riguarda le inclusioni ed i percorsi.
L'errore dovrebbe essere ricondotto a questo:
Codice PHP:
public static function Register() {
if (function_exists('__autoload')) {
// Register any existing autoloader function with SPL, so we don't get any clashes
spl_autoload_register('__autoload');
}
// Register ourselves with SPL
return spl_autoload_register(array('PHPExcel_Autoloader', 'Load'));
} // function Register()
Per ovviare a quest'errore nel mio script ho provato ad includere il file che manca, ma poi mi compare l'errore con un'altra classe.
Ho anche incluso l'altra classe e ripetuto questa procedura per svariate volte ma poi mi sono stancato.
E' come se non caricasse i file l'autoloader (per via del path?!?).
Sapreste aiutarmi?
Vi ringrazio!
Lo script è:
Codice PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE);
// Stesso effetto di error_reporting(E_ALL);
ini_set('display_errors', 'On');
include 'classes/PHPExcel/IOFactory.php';
$inputFileName = 'calciatori.xls'; // SIA FILE .XLS CHE .XSLX
try {
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
} catch(Exception $e) {
die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
$allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$arrayCount = count($allDataInSheet); // Here get total count of row in that Excel sheet
for($i=1;$i<=$arrayCount;$i++){
$campo1 = $allDataInSheet[$i]["A"];
$campo2 = $allDataInSheet[$i]["B"];
$campo3 = $allDataInSheet[$i]["C"];
echo $campo1 . "<br>";
echo $campo2 . "<br>";
echo $campo3 . "<br>";
}
?>
EDIT:
Mi funziona andando ad includere nello script le classi che risultano "mancanti"
Codice PHP:
include '/membri/dickymoser/classes/PHPExcel/shared/Date.php';
include '/membri/dickymoser/classes/PHPExcel/shared/OLE.php';
include '/membri/dickymoser/classes/PHPExcel/shared/CodePage.php';
include '/membri/dickymoser/classes/PHPExcel/shared/OLERead.php';
include '/membri/dickymoser/classes/PHPExcel/shared/String.php';
include '/membri/dickymoser/classes/PHPExcel/shared/ZipStreamWrapper.php';
include '/membri/dickymoser/classes/PHPExcel/IOFactory.php';
Però la vedo piuttosto rudimentale come soluzione..