Здравствуйте!
Прочитал о модной технологии XSLT, решил попрбовать. Иду на веб-сервер (FreeBSD6.1+apache2+php5) добавляю в php.ini строчку ;extension=php_xls.dll заменил на
extension=php_xls.so
Потом нужно править
extension_dir = "./"
а я не знаю куда у меня расширения встали!? Устанавливал из портов без prefix`а. Апатч стоит в /usr/local/sbin/, сам php d в /usr/local/libexec. Где у него расширения???
Ну да ладно. Поперся на win-сервер. Там проделал все, что нужно. Логи апатча пустые, phpinfo() не выдало ни строчки про xlst! Скрипты после строчки
$xsl = new XSLTProcessor();
прекращают работу!
В общем выручайте. Какие расширения нужно подключать, чтобы потом мои скрипты работали на любом хостинге. Где искать информацию по работе с расширениями (на тоже php_xls.dll описание не найти).
И еще! Есть некторый php-скрипт, который занимается обработкой файлов. Чтобы много тут не объяснять, вот он:
<?php
function fix_cdr($fname) {
$if = fopen ("cdr/$fname","r");
$of = fopen ("cdr/done/$fname","w");
while (!feof ($if)) {
$buffer = fgets($if, 4096);
$buffer = preg_replace ("/,,,,,,(\d+),(\d+),(\d+),,,,,,,,,,,,,,,,,,(\d+),,,,(YBILSH_I,)(\w+),,,,,,/",
",,,,,73843570100,\\1,\\2,\\3,,,,,,,,,,,,,,,,,,\\4,,,,\\5\\6,,,,,,",
$buffer);
$buffer = preg_replace ("/,,,,,,(\d+),(\d+),(\d+),,,,,,,,,,,,,,,,,,(\d+),,,,(BOLSH_I,)(\w+),,,,,,/",
",,,,,73843573100,\\1,\\2,\\3,,,,,,,,,,,,,,,,,,\\4,,,,\\5\\6,,,,,,",
$buffer);
$buffer = preg_replace ("/,,,,,,(\d+),(\d+),(\d+),,,,,,,,,,,,,,,,,,(\d+),,,,(MASHZ_I,)(\w+),,,,,,/",
",,,,,73843708000,\\1,\\2,\\3,,,,,,,,,,,,,,,,,,\\4,,,,\\5\\6,,,,,,",
$buffer);
fputs($of, $buffer);
}
fclose($if);
fclose($of);
/*
$fp = file_get_contents("./cdr/$fname");
$fp = preg_replace ("/(,{6})(\d{1,}),(\d{1,}),(\d{1,})(,{18})(\d{1,})(,{4})(YBILSH_I,)(\w+)(,{6})/",
",,,,,73843570100,\\2,\\3,\\4,\\5\\6\\7\\8\\9\\10\\11",
$fp);
$fp = preg_replace ("/(,{6})(\d{1,}),(\d{1,}),(\d{1,})(,{18})(\d{1,})(,{4})(BOLSH_I,)(\w+)(,{6})/",
",,,,,73843573100,\\2,\\3,\\4,\\5\\6\\7\\8\\9\\10\\11",
$fp);
$f = fopen ("./cdr/$fname","w");
fputs($f, $fp);
fclose ($f);
*/
}
if (!file_exists("lock"))
{
$lk = fopen ("lock","w+");
fclose($lk);
echo "<b>Обработка CDR-файлов:</b><br><br>";
$handle=opendir('./cdr');
$fnum = 1;
ob_end_clean();
while ($file = readdir($handle)) {
if ($file != "." && $file != ".." && $file != "done")
{
echo "\t$fnum.\t$file<br>";
$fnum++;
fix_cdr($file);
}
}
echo "<br><b>Обработка CDR-файлв успешно завершена!</b>";
closedir($handle);
unlink("lock");
}
else
echo ("Скрипт уже запущен!");
?>
Так вот, при работе хотелось-бы чтобы он выводил имя обрабатываемого файла. Да и вообще, чтобы хоть что-нибудь выводил. Сейчас получается так - запускаешь скрипт, ждешь пока он выполнится (около 10 мин), и только потом в браузере появляется вывод. Если этот-же скрипт запустить не через браузер (сделать выполняемым и добавить в начало !#/usr/local/php), то вывод в консоль будет идти в процессе работы!
То, что это можно сделать с помощью JavaScript и AJAX понимаю, хочется узнать можно-ли этого добиться средствамми PHP.
Спасибо.