Zdravim,
mam subor prvy.txt, ktory ma obsah napriklad:
<b>nieco</b>
<p>text</p>
a chcem aby sa mi automaticky vygeneroval subor druhy.php, ktoreho obsah by bol:
<?php
echo' <b>nieco</b> ';
echo' <p>text</p> ';
?>
cize na zaciatok kazdeho riadku by sa pridal vyraz [ echo' ] a na koniec kazdeho riadku by sa pridal vyraz [ '; ].
Poradte ako to mam spravit. Za vase napady vam dakujem.
uz som na to prisiel, keby dakoho zaujimalo tak je to takto:
<?php
$data=file('prvy.txt');
$vystup="<?php \n";
foreach ($data as $riadok) {
$vystup.="echo ' ".$riadok." ';\n";
}
$vystup.=" ?>";
file_put_contents('druhy.php',$vystup);
?>
Quote from: Mike on 20.12.2010, 15:48:45
uz som na to prisiel, keby dakoho zaujimalo tak je to takto:
<?php
$data=file('prvy.txt');
$vystup="<?php \n";
foreach ($data as $riadok) {
$vystup.="echo ' ".$riadok." ';\n";
}
$vystup.=" ?>";
file_put_contents('druhy.php',$vystup);
?>
Je to funkcne ale pozor, lebo pri konkatenacii retazcov s .= resp . engine pracuje so stale vacsim stringom a postupne sa vykon znizuje. Ak sa jedna o kratke subory je to jedno, v opacnom pripade by som ti odporucal priamo zapisovat kazdy riadok rovno do suboru s fwrite. Ak by si nepotreboval zapisovat do suboru, aj vtedy odporucam pouzit inu metodu, napr. implode() alebo ak sa jedna o zlozitejsiu kompoziciu stringov tak output buffer:
<?php
ob_start();
echo "<?php \n";
foreach ($data as $riadok) {
echo "echo ' ", $riadok, " ';\n";
}
$vystup = ob_get_clean();
?>