Oznámení
Provoz fóra byl ukončen
volání texy! z příkazového řádku
Upozornění: Tohle vlákno je hodně staré.
před 14 lety
- mlebeda
- Člen | 1
Nechci používat web server, ale překládat z příkazového řádku.
Existuje nějaká přímější cesta než volání z jiného programu?
Zatím jsem to vyřešil takto:
#!/usr/bin/perl
use locale;
$texy_path = '/home/martin/bin/texy-pre4rc/texy/texy.php';
foreach $i (@ARGV) {
do_texy($i);
}
sub do_texy () {
($file_in) = @_;
$file_out = $file_in;
$file_out =~ s/(.*).txt/\1.html/;
#########################################
print "$file_in -> $file_outn";
open(PHP,"|php > /dev/null");
print PHP '<?php'."n";
print PHP 'if (version_compare(phpversion(), '4.3.3', '<')) '."n";
print PHP ' die('Texy! requires PHP version 4.3.3 or higher');'."n";
print PHP 'require_once("'.$texy_path.'.");'."n";
print PHP '$texy = &new Texy();'."n";
print PHP '$texy->utf = false;'."n";
print PHP '$texy->linkModule->root = '';'."n";
print PHP '$texy->linkModule->imageOnClick = 'return !popup(this.href)';'."n";
print PHP '$texy->imageModule->root = 'images/'; '."n";
print PHP '$texy->imageModule->linkedRoot = 'images/big/';'."n";
print PHP '$texy->formatterModule->baseIndent = 1; '."n";
print PHP '$texy->formatterModule->lineWrap = 60; '."n";
print PHP '$text = file_get_contents(''.$file_in.'');'."n";
print PHP '$html = $texy->process($text);'."n";
print PHP 'file_put_contents ( "'.$file_out.'" , $html);'."n";
print PHP '?>'."n";
close(PHP);
}
Editoval mlebeda (11. 4. 2005 11:39)
před 14 lety
- David Grudl
- Nette Core | 6806
Pro zobrazování pod windows používám dávkový soubor .BAT, který vypadá asi takto::
@c:\php\php.exe -q D:\...\show_texy.php file=%1 > D:\...\output.html
a zpracovávaný show_texy.php:
require_once('texy.php');
$texy = &new Texy();
echo $texy->process( file_get_contents($_GET['file']) );
Je to v podstatě velmi podobné řešení.