View Full Version : Linux
raktaros
03-14-2018, 06:42 PM
Nyitok egy ilyen témát, mert reménykedem hogy van itt valaki aki érti, mert valószínû sok kérdésem lesz.
Sajnos windows-on nõttem fel, már nagyon bánom hogy a könnyebbik utat választottam annak idején :)
Most nem kimondottan linux lesz:
Szeretnék php-ben egy text fájlt adott sornál kettévágni és két külön text fájlba letárolni.
Elvileg ez mûködik parancssorból, de php-ból nem tudom hogy kell lefuttatni:
head -n 100 input-file > output1
tail -n +101 input-file > output2
Valakinek ötlete hogyan tudnám megoldani?
Ilyesmire lehet szükséged: https://stackoverflow.com/questions/16778627/splitting-a-text-file-in-half-using-php
Lecseréled a $size/2-t a kívánt méretre, esetleg paraméterként adod át, kb. ennyi.
Mit szeretnél egyáltalán megoldani?
raktaros
03-15-2018, 09:31 AM
Köszönöm, megpróbálom.
Egy generált config fájlt szeretnék külön választani, mert az adott programnak úgy kell. Elõször külön akartam legenerálni a két fájlt -neki is álltam-, de az sokkal bonyolultabb mert egy már elkészített rendszerbe kell beleilleszteni ráadásul szeretném ha minél kevesebb fájlt kelljen módosítani az eredeti programon.
(FRN szerverhez webes gui az Openrepeater-be.)
raktaros
03-15-2018, 09:54 AM
Ez úgy nézem méretre vág, nekem meg sorra kellene, mert a méret változik :(
De kiindulási alapnak talán jó lesz.
Igen, a belinkelt példa rossz, bocs :duhos:
https://secure.php.net/manual/en/function.fgets.php
Nézd meg ezt. Van hozzá példakód is, soronként tudod feldolgozni a szöveges állományt, aztán az php fwrite()-tal (https://secure.php.net/manual/en/function.fwrite.php) oda írod, ahová szeretnéd.
raktaros
03-15-2018, 11:04 AM
Találtam egy ilyent, ez mûködött is:
<?php
// get file contents into string
$stringData = file_get_contents('MyTextFile.txt');
// split by newline
$arrayData = split("\n", $stringData);
$fileCount = 0;
// loop through arrayData
for ($i = 0; $i < count($arrayData); $i++)
{
$file = 'myFileName';
// for every 2000 lines, create a new file
if ($i % 2000 == 0)
{
$fileCount++;
}
file_put_contents($file . $fileCount . '.txt', $arrayData[$i]."\n", FILE_APPEND | LOCK_EX);
}
?>
Ezután még át kell nevezgetnem a készült fájlokat, arra kerestem "hogyan"-t és megtaláltam az eredeti kérdésemre a megoldást :)
(pedig keresgettem, meg próbálkoztam vele elõtte is, csak hát nem mindegy hogy ' vagy ")
Végül azzal oldottam meg, mert sokkal egyszerûbb, egy lépésben megvan a kívánt fájlnév is:
shell_exec("head -n 100 input-file > output1");
shell_exec("tail -n +101 input-file > output2");
Köszönöm hogy foglalkoztál a kérdésemmel.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. Minden jog fenntartva.