• Welcome to TUKE FÓRUM - Fórum pre Å¡tudentov Technickej Univerzity v KoÅ¡iciach.
 

[PHP] - praca so subormi

Started by Mike, 20.12.2010, 02:06:51

« predchádzajúce - ïal¹ie »

Mike

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.

Mike

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);
?>

tommy-sv

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();
?>
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."