ugrás a tartalomhoz

Oszlopok szerinti sorbarendezés PHP-ban

andras10 · 2015. Szep. 5. (Szo), 01.29
Üdv. a Fórumozóknak !

Van egy egyszerű kérdésem, amit sajnos nem tudok kitalálni.
Van egy akármennyi sorból és N db oszlopból álló, | jellel elválasztott rendezett adatbázisom.

A Unixban van egy ilyen utasítás :

system ("/usr/bin/sort -t\\| -k4 -r -n $ut/dat/adatallomany.dat.bak -o $ut/dat/adatallomany.dat");
Ezt a sort a PERL nyelvű programba be lehet írni, ott működött.

Ezen paraméterek közül a -k4 jelenti, hogy a 4 oszlop elemei szerint, az -r pedig azt, hogy fordított sorrendben.

Kérdésem, hogy a PHP-ban van-e valamifajta sorbarendezést végző utasítás, amit hasonlóan lehet paraméterezni.
 
1

usort Beolvasod egy tömbbe,

szabo.b.gabor · 2015. Szep. 5. (Szo), 07.43
usort

Beolvasod egy tömbbe, aztán írsz egy függvényt, ami úgy rendezi, ahogy neked jó.
4

Körülményesen, while, vagy

andras10 · 2015. Szep. 5. (Szo), 23.26
Körülményesen, while, vagy for ciklussal, ideiglenes állományokat létrehozva, a rendezendő oszlopot előreírva, rendezve, majd újra megírva az adatállományt, több lépéssel fel tudnám programolni a tetszőleges oszlop szerinti sorbarendezést.
A kérdésem arra irányult, hogy a PHP-ban van-e olyan egyszerűen paraméterezhető utasítás, ami ezt elvégzi.

Pl. valami ilyesmi :

$adat=file("....../adatallomany.dat");
sort ( $adat, 3, SORT_NUMERIC); // itt a 3 az oszlopot jelentené, amely szerint rendezünk.
file_put_contents ("......./adatallomany.dat", $adat);
8

RTFM

szabo.b.gabor · 2015. Szep. 6. (V), 13.19
$data = load_the_file_as_array('/path/to/file.dat');

usort($data,'my_shiny_little_compare_function');

write_array_to_file($data,'/path/to/output.dat');

function my_shiny_little_compare_function($a,$b){
   return $a[3] == $b[3] ? 0 : ($a[3] > $b[3] ? 1 : -1);
}
9

Köszönöm, de ennél lényegesen

andras10 · 2015. Szep. 6. (V), 14.13
Köszönöm, de ennél lényegesen egyszerűbb, a fenti példámmal ábrázolt, paraméterezhető, sorbarendezést végző utasítást keresek, ha van ilyen. Mint írtam, több lépésben magam is fel tudom programolni.
25

bash

Hidvégi Gábor · 2015. Szep. 8. (K), 10.53
Miért nem eleve shell scripttel csinálod meg? Abban is ugyanúgy használhatsz paramétereket, emiatt fölösleges meghívni a php-t.
2

system ("/usr/bin/sort -t\\|

kuka · 2015. Szep. 5. (Szo), 12.15
system ("/usr/bin/sort -t\\| -k4 -r -n $ut/dat/adatallomany.dat.bak -o $ut/dat/adatallomany.dat");
Ezt a sort a PERL nyelvű programba be lehet írni, ott működött.
Ezt a sort PHP nyelvű programba is be lehet írni, ott is működik. (Persze ez attól még gányolás, Perlben és PHP-ben is. Meg Ruby-ban is az, merthogy ott is működik.)
3

Sajnos ez nálam nem működik.

andras10 · 2015. Szep. 5. (Szo), 23.10
Sajnos ez nálam nem működik.
5

Mit jelent az, hogy nem

Poetro · 2015. Szep. 6. (V), 09.42
Mit jelent az, hogy nem működik, és 3. oszlop?
6

Ez nem működik nálam : system

andras10 · 2015. Szep. 6. (V), 11.12
Ez nem működik nálam :
system ("/usr/bin/sort -t\\| -k4 -r -n $ut/dat/adatallomany.dat.bak -o $ut/dat/adatallomany.dat");
7

Hibakeresés

Hidvégi Gábor · 2015. Szep. 6. (V), 12.47
Ajánlom figyelmedbe az Egyszerű hibakeresés című cikket, valamint szerintem használd inkább a exec() parancsot. Emellett, ha látni szeretnéd a kimenetet, a parancssor végére írd be a következőt: 2>&1.
10

Ugyan azon

Poetro · 2015. Szep. 6. (V), 14.38
Ugyan azon a gépen működik a parancs Perl-ben, de nem működik PHP-ban? És természetesen nem válaszoltál a kérdéseimre.
11

Sajnos nem ismerem a pontos

andras10 · 2015. Szep. 6. (V), 18.39
Sajnos nem ismerem a pontos környezetet, nem én vagyok a tárhely gazdája. Tehát a kérdésre azonnal, itt és most nem tudok választ adni.
12

Ez valószínűleg meg is

kuka · 2015. Szep. 6. (V), 19.10
Ez valószínűleg meg is magyarázza, hogy nálad miért nem működik. A system() és társai osztott/olcsó tárhelyeken általában le vannak tiltva azáltal, hogy felsorolják a php.ini disable_functions direktívájában.
13

Köszönöm mindenkinek az

andras10 · 2015. Szep. 7. (H), 10.03
Köszönöm mindenkinek az ötletét.
A rendszergazdám engedélyezte számomra a system () utasítást, így a sorbarendezési lehetőség egyszerűen megoldva.
Kár, hogy a PHP-ban ilyen rövid, egysoros megoldás nincs.
14

PHP

Hidvégi Gábor · 2015. Szep. 7. (H), 10.06
PHP: Hypertext Preprocessor. Nem erre találták ki.
15

Jó, de azért lehetett volna a

andras10 · 2015. Szep. 7. (H), 10.13
Jó, de azért lehetett volna a PHP-ban olyan sort ( ) utasítást is kitalálni, amit egyszerűen és gyorsan fel lehet paraméterezni, amivel az elválasztójellel rendezett adatállományokat lehet sorbarendezni.
Ez egy igen egyszerű dolog, az Excelben is pillanatok alatt lehet egy táblázatot előre-hátra, oda-vissza rendezni, ha oda betöltöm a kérdéses adatállományt.
16

A php-ban minden gyakran

Hidvégi Gábor · 2015. Szep. 7. (H), 11.04
A php-ban minden gyakran használt funkcióhoz van függvény.
17

Ez esetben a 4. számú

andras10 · 2015. Szep. 7. (H), 12.37
Ez esetben a 4. számú kiírásomhoz várnék egy célirányos választ. Utasítás + a paraméterei.
18

PHP

Poetro · 2015. Szep. 7. (H), 18.54
Mivel a PHP nem fájlokon dolgozik elsősorban (ahogy szinte egyik programozási nyelv sem), ezért leginkább tömböket tud rendezni. Ebben az esetben a usort lehet a megoldás. De előbb a fájlodat be kell olvasni memória, és tömbökbe kell pakolni. Erre lehet alkalmas az fgetcsv. Amennyiben újra ki akarod írni, akkor fputcsv.
19

Dokumentáció

Hidvégi Gábor · 2015. Szep. 7. (H), 19.03
Olvasd el a dokumentációt, abból ugyanúgy össze tudod mazsolázni, amire szükséged van, mint mi. De ha nincs kedved, pár Mátyás királyért szívesen segítenek itt sokan.
20

Vigyázz a gányolással, én nem

bamegakapa · 2015. Szep. 7. (H), 23.35
Vigyázz a gányolással, én nem hívnám az oprendszert csak azért, mert sorba kell rakni pár dolgot. A helyes megoldásnak nem az az ismérve, hogy kevesebbet kell gépelni hozzá.

A PHP egy programnyelv. Ha kell ilyen funkció, és lusta vagy megírni, nézz körül a neten, biztos megírta már valaki.
21

Nem gányolás

Hidvégi Gábor · 2015. Szep. 8. (K), 08.12
Azt is mondják sokan, hogy minden célra a megfelelő eszközt kell használni. A linux/unix beépített parancsai pont ilyen szöveges feldolgozásra lettek eredetileg kitalálva, sokkal hatékonyabbak, mint bármely scriptnyelv, vagy ha akár C-ben írnád meg ugyanezt a funkcionalitást.

Úgyhogy de, jelen esetben győz a kevesebb gépelés, csak arra kell figyelni, hogy a parancssorba beillesztett változók ellenőrizve legyenek.
22

Nem derült ki, mi a cél

bamegakapa · 2015. Szep. 8. (K), 09.28
Nem derült ki, mi a cél pontosan (azon kívül hogy gépelni meg gondolkozni ne kelljen). Én a legtöbb esetben nem vezetnék be ilyen külső függőséget, főleg ha belül is meg tudom oldani. Csak ezért főleg nem kapcsoltatnám be a system()-et, szerintem ez a gányolás magasiskolája. Ha a scriptem amúgy is külső parancsokat hív rendszeresen, akkor esetleg mehet egy sort is.

Úgyhogy de, jelen esetben győz a kevesebb gépelés, csak arra kell figyelni, hogy a parancssorba beillesztett változók ellenőrizve legyenek.

Aki azért bekapcsoltatja a systemet, hogy sorbarendezzen, az nem fog ellenőrzéssel szórakozni, mert ahhoz bizony gépelni kell. Ráadásul ha most nem ad át változókat, akkor főleg nem fog ezzel szórakozni. Később, amikor gyorsan módosítani kell a kódon, pedig már nem fog eszébe jutni. Bang.
23

Te mit értesz gányolás alatt?

pp · 2015. Szep. 8. (K), 10.37
"Nem gányolás"

Érdekes én a hosszú távon nem fentartható megoldásokat szoktam gányolásnak nevezni, márpedig ez az egy sor bőven kielégíti ezt a definiciót. Kezdve attól, hogy magát a környezetet is fixálod, egész addig, hogy a negyedik oszlop szerint rendezed, ráadásul úgy, hogy egyszerre két process két különböző rendezést nem fog tudni benne használni.

pp
24

Premature optimization

Hidvégi Gábor · 2015. Szep. 8. (K), 10.50
Mivel nem ismerünk semmilyen további részletet a feladattal kapcslatban, bármiféle becslésbe bocsájtkozni, hosszú távon gondolkodni kimeríti az előre való optimalizáció fogalmát.
26

:D

szabo.b.gabor · 2015. Szep. 8. (K), 11.31
Ennyi :)

Ez jó volt.
27

BTW: Akkor nagy butaság volt

pp · 2015. Szep. 8. (K), 12.21
BTW: Akkor nagy butaság volt az amit korábban valaki írt:

"sokkal hatékonyabbak, mint bármely scriptnyelv, vagy ha akár C-ben írnád meg ugyanezt"

Én a kód készítés optimalizációjáról beszéltem, mely feltételei nagyrészt ismertek, nem pedig a kód futás optimalizációjáról, aminek a feltételei nem ismertek.

Szerintem összekevered a kettőt. Igyekszem pontosabban fogalmazni, legközelebb, de nem látom, hogy miért is keverted össze a kettőt. Segítesz?

pp
28

Akkor nagy butaság volt az

Hidvégi Gábor · 2015. Szep. 8. (K), 13.46
Akkor nagy butaság volt az amit korábban valaki írt
Az idézett szöveget én írtam, ez nyilvánvaló - nem tudom, miért kerülgeted a kását?

Egyébként is miért lenne butaság? Megírhatod C-ben, ami piszok gyors lesz, de rengeteg munka. Shell-ben az az egy sor megoldja a feladatot, ezt csak annyival kell kiegészíteni, hogy paraméterezhető legyen. Erre tökéletesen megfelel egy bash script, ami rövidebb lesz, és járulékos következmény, hogy akár nagyságrendekkel gyorsabb, mint php-ban, hisz a linux parancssorát és parancsait pont ilyen adatfolyamok gyors feldolgozására találták ki.

A 23-as hozzászólásodban felvetett érveidre:
- Mennyi az esély arra, hogy áttérnek windowsra? Teljesen fölösleges általánosan megírni valamit, amíg egy ilyen horderejű változást meg nem csinálnak.
- Bash scriptben is lehet paramétereket, változókat kezelni.
- Egyszerre több kérést is el lehet indítani párhuzamosan, amit az operációs rendszer lekezel - php-ban ez jóval nehézkesebb.

Ráadásul itt van, ugye, Occam borotvája.
29

Ha már a híres borotvával

Endyl · 2015. Szep. 8. (K), 15.08
Ha már a híres borotvával dobálózunk (ami nem feltétlenül passzol ide), akkor nézzük, mit is mond (wiki szerint):
The principle states that among competing hypotheses that predict equally well, the one with the fewest assumptions should be selected.


A tiszta php-s megoldás nem feltételez semmit, míg a system() hívás feltételez egy adott platformot. Ezek szerint a php-s változat előnyt kellene élvezzen.

Plusz, ami a 22-esben le lett írva. Csak ezért bekapcsolni a system()-et és potenciális biztonsági réseket lehetővé tenni teljesen felesleges. Ha lassúnak bizonyul a php-s megoldás, akkor el lehet gondolkozni új függőség beépítésén, de addig ez csak premature optimization.
30

Occamhoz idézet a magyar

Hidvégi Gábor · 2015. Szep. 8. (K), 15.17
Occamhoz idézet a magyar wikipédiáról: "általában az egyszerűbb megoldás a helyes".

Én a php-n már túlléptem, ezt többször is jeleztem, szerintem nem érdemes vele megoldani ezt a feladatot ennyi bejövő információ alapján.
31

„a többletet nem kell bevezetni szükségtelenül”

Endyl · 2015. Szep. 8. (K), 15.29
Rághatjuk az Occam gumicsontot, de mivel nem szoftverfejlesztési problémák megoldására találták ki, teljesen felesleges egyáltalán felvetni ebben a témában. Főleg, hogy az egyszerűség meghatározása teljesen tetszőleges (lásd a lenti idézetet). Én azt mondom, az az egyszerűbb, ami kevesebb függőségre épít (igaz, az elv is ezt mondja), te meg azt, hogy ami kevesebb sorból áll.
Baker then notices that principles, including Occam's razor, are often expressed in a way that is unclear regarding which facet of "simplicity"—parsimony or elegance—the principle refers to, and that in a hypothetical formulation the facets of simplicity may work in different directions: a simpler description may refer to a more complex hypothesis, and a more complex description may refer to a simpler hypothesis.


Abban egyetértünk, hogy ha a program egyetlen feladata, hogy egy ilyen állományt szigorúan csak a fenti (vagy shell scriptben hasonlóan egyszerűen leírható) feltételek szerint rendezzen, akkor tényleg nem a php a megfelelő eszköz.
33

A legjobb eset persze az, ha

bamegakapa · 2015. Szep. 8. (K), 23.27
A legjobb eset persze az, ha nem kell a PHP, de emberünk valamiért ahhoz ragaszkodik (pl. a Perlt sem találta megfelelőnek, kétlem, hogy egy sima bash kielégíti igényeit). Ha csak ennyi a feladat, én se a PHP-t javasolnám természetesen.

De ha már PHP (egyéb okok miatt), akkor írja PHP-ban. Technikailag hívogathat egy rakás Python, meg Perl, meg Brainfuck, meg akármilyen scriptet, függően attól, adott részfeladatot melyik nyelven kevesebb billentyűleütés elkészíteni, csak attól ez még gány.

Occam beretvájával meg már annyiszor hadonásztál korábban is indokolatlanul és megalapozatlanul, hogy tényleg csak attól félek, nehogy megvágd magad vele.
32

Figy, Te most velem

pp · 2015. Szep. 8. (K), 21.49
Figy, Te most velem vitatkozol, vagy a másik Hidvégi Gáborral, aki megsemmisítő csapásokat mér az érveidre?

"- Mennyi az esély arra, hogy áttérnek windowsra? Teljesen fölösleges általánosan megírni valamit, amíg egy ilyen horderejű változást meg nem csinálnak."

??? Ember olvasd végig a szálat. Vagy neked nem tűnt fel, hogy emberünknek tökre nem ment az amit próbált, csak azután, hogy megváltoztatták a környezetet amiben fut az alkalmazása??? Hogy jön ide a windows???

"- Bash scriptben is lehet paramétereket, változókat kezelni."

És? Én hol írom, hogy nem lehet??? Nekem azzal van bajom, hogy a negyedik oszlop szerint rendezel. Részemről ez kerülendő. Pusztán azért mert nem lesz egyszerűen megérthető a kód, mert bele kell túrni a fájlba, vagy a dokumentációba, hogy megértsd, hogy éppen ott mit is jelent a negyedik oszlop. Vagy 5.-ben Poetro miért teszi fel a kérdést? (és miért téveszti össze a 4. oszlopot a 3.-al :))

"Ráadásul itt van, ugye, Occam borotvája."

Ember, továbbra se tudjuk mi a feladat, Occam borotvájával így csak összeszabdaljuk magunkat, mint ahogyan Te is írod, vagy az a másik Hidvégi Gábor aki ezzel érvelt. (Ugyan az lenne a két ember?)

Továbbra is a gányolás definicióját várom tőled/tőletek, mert arra valamiért elfelejtettél/elfelejtettetek reagálni.

pp
34

Nehogy felhúzd magad a

bamegakapa · 2015. Szep. 8. (K), 23.31
Nehogy felhúzd magad a Hidvégin, régi motoros vagy már te ahhoz :D.
35

Minden oké, jól vagy már?A

Hidvégi Gábor · 2015. Szep. 9. (Sze), 09.24
Minden oké, jól vagy már?

A környezeten én az operációs rendszert értettem, mivel a bash scriptben gondolkodtam.

nem ment az amit próbált, csak azután, hogy megváltoztatták a környezetet
És ezzel mi a baj? Fentebb pedig azt írtad, hogy "Kezdve attól, hogy magát a környezetet is fixálod" - most akkor fixálva van vagy sem? A rendelkezésünkre álló információk alapján nem tudjuk eldönteni, hogy ez okozhat-e hátrányokat.

Nekem azzal van bajom, hogy a negyedik oszlop szerint rendezel
Ha ez a feladat, miért rendezzünk az ötödik szerint? Egyébként a 9-esben paraméterezhető függvényt keres András. Egyébként sem látom problémának, ha kell, beleírja a dokumentációba vagy egy kommentbe, ha pedig másik vagy több oszlop szerint kell rendezni, akkor módosítja a programot. Én addig egy másodpercet sem szánnék egy olyan problémára, ami fel sem merült.

Occam borotváját arra hoztam fel, hogy ha van már egy egyszerű, jól működő megoldás parancssorban, felesleges átírni php-re, mert csak vesztünk vele.

A te gányolás-definíciód teljesen rendben van, csak azt nem értem, miért rugózol rajta, hisz azt sem tudjuk, a feladatot milyen távra tervezik. Lehet, hogy jövő szombaton kell négy fájlt átkonvertálni a segítségével, utána eladják a szervert.
36

Megnyugtatna, ha leírnád Te

pp · 2015. Szep. 9. (Sze), 09.44
Megnyugtatna, ha leírnád Te mit értesz gányolás alatt. Megtisztelnél.

"És ezzel mi a baj?"

Olvass vissza a másik Hidvégi problémázott ezen.

pp
37

Gányolás

Hidvégi Gábor · 2015. Szep. 9. (Sze), 12.06
Amikor összecsap valaki egy munkát, amiről a későbbiekben kiderül, hogy az újabb elvárások miatt jelentősen módosítani kell.

Olvass vissza a másik Hidvégi problémázott ezen
Visszaolvastam, de nem látom az ellentmondást abban, amit írtam. Kérlek, idézz, hogy egyértelmű legyen számomra is!
38

Köszönöm a

pp · 2015. Szep. 9. (Sze), 12.28
Köszönöm a meghatározást.

Tehát akkor azt állítod, hogy ez a munka nincs összecsapva, és újabb elvárások miatt nem kell majd jelentősen módosítani?

Mert ugye azt senki nem vitatta, én se, hogy ha egyszeri gyors megoldás kell, akkor egy kis gányolás még belefér, itt azon megy a vita, hogy az adott megoldás, gányolás avagy sem. Mert ugye ha tudjuk, hogy gányolás, akkor tudjuk, hogy ha hozzá kell nyúlni, akkor nagyon hozzá kell nyúlni.

"Visszaolvastam, de nem látom az ellentmondást abban, amit írtam."

Én azt írtam, hogy az alkalmazás fixálja a környezetet, értsd csak bizonyos környezetben képes futni. És mint ahogyan láttuk is a környezet amiben először futtatta a kérdező nem is volt megfelelő rá, ezért módosítani kellett a környezetet (engedélyezni kellett az adott fv-t). Tehát mind a környezet módosítás mind a környezet fixálás probléma, csak ugye nem mindegy, hogy melyik szövegkörnyezetből ragadjuk ki az adott szavakat, és állítjuk be úgy, mintha ellentmondás lenne, holott nincs. Kérlek olvasd el figyelmesen amit írok, és akkor nem keveredsz ellentmondásba önnmagaddal, mert nem tudom mivel vitatkozol, de nem azzal amit én leírtam.

pp
39

Ezt a munkát nem nevezhetjük

Hidvégi Gábor · 2015. Szep. 9. (Sze), 13.42
Ezt a munkát nem nevezhetjük gányolásnak, hisz a system() függvény engedélyezéséig nem is futott le, azaz a feladatát nem végezte el, nem volt kész.

Nem tudjuk, hogy András miért váltott perlről php-re. Perl alatt a system() engedélyezve volt, tehát a php script pontosan ugyanolyan biztonsági kockázatokat hordoz magában. Ez viszont azt jelenti, hogy php alatt a system() engedélyezése nem jár a környezet módosításával.

Egy php-ban megírt script is fixálja a környezetet, mert php kell hozzá. Ha arra célzol a fixálással, hogy a php script az adott system() hívással a Unix shellhez van kötve, arra írtam, hogy ezzel nincs addig gond, amíg át nem térnek Windowsra.

Ha jól értem, te azt javaslod, hogy ha php-t használ András, akkor a php beépített és engedélyezett függvényeivel oldja meg a feladatot (az adott szerveren system() nélkül), és lehetőleg mindent paraméterezve?
40

Bocs, de azt hiszem több

pp · 2015. Szep. 9. (Sze), 19.20
Bocs, de azt hiszem több kusza gondolatot nem rágnék át ebben a szálban, kissé izzadságszagú kezd lenni, hogy nem akarod megérteni amit írok, és mindenféle random dologba belekötsz.

Ha jól értem, te azt javaslod, hogy ha php-t használ András, akkor a php beépített és engedélyezett függvényeivel oldja meg a feladatot (az adott szerveren system() nélkül), és lehetőleg mindent paraméterezve?


Kérlek, továbbra is, hogy figyelmesen olvasd el amit írok. Nem javaslok semmit. Nem mondom, hogy jó, vagy nem jó. Azt írtam csak, hogy ez szerintem gányolás, vagyis hosszabb távon nem fenntartható.

btw, Te miért feltételezed, hogy a PHP és a Perl ugyan abban a környezetben fut? Nem te kardoskodtál amellet, hogy semmit se lehet feltételezni? Hol írja le bárki is, vagy csak akár utalást tesz rá, hogy ugyan az a környezet?

btw, a system() nem csak Unix/windows kérdés, amire megpróbálod leegyszerűsíteni, hogy elbagatelizálhasd a kérdést, hisz unixon se mindig van sort, főleg, ha egy chroot-ban, vagy egy docker konténerben fut a PHP, a fájl jogosultság problémákról már nem is beszélve.

pp
41

Látom, nagyon

Hidvégi Gábor · 2015. Szep. 9. (Sze), 20.41
Látom, nagyon belekapaszkodtál ebbe a gányolás szóba (és ezzel együtt az időbeliségbe), és képtelen vagy elengedni. Ha lenne erre vonatkozólag információnk, készséggel elismerném, hogy igazad van, mert hosszú távon valóban okozhat gondot a system() hívás, de nincs. Sem András nem tett erre megjegyzést, sem pedig a kód jellegéből nem lehet kitalálni.

Egy átlagos fórumos kérdező, aki bemásolja a teljes php scriptet, ami tele van mysql_query()-vel és társaival, ott teljesen jogos feltételezni, hogy nem valami belső feldolgozásra kell a script, hanem website-ot szolgál ki, ott nyugodtan lehet adni olyan tanácsot, hogy írja át első körben mysqli_()-re, aztán meg használjon ellenőrzéseket, pdo stb., de itt nincs erről szó. Nem lehet egyértelműen eldönteni és kijelenteni, hogy ez gányolás-e vagy sem.

Hol írja le bárki is, vagy csak akár utalást tesz rá, hogy ugyan az a környezet?
Nem tudhatjuk, lehet, hogy ugyanaz, lehet, hogy más. Lehet, hogy a jövőben meg fog változni, de lehet, hogy nem. Emiatt sem értem, miért érvelsz a segítségével.

a system() nem csak Unix/windows kérdés, amire megpróbálod leegyszerűsíteni
Őszintén szólva ebbe nem gondoltam bele (chroot, docker), de mivel a 13-as válaszban kiderült, hogy megvan minden szükséges függvény, az egyszerűsítéssel nincs gond.

hogy elbagatelizálhasd
Mindenki magából indul ki.


Ha tudom, hogy a scriptet sokáig fogják használni és
- bővíteni kell belátható időn belül vagy
- új szerverre/környezetbe fog kerülni,
akkor igazad van, és valóban gányolás lehet. Ellenkező esetben kár bármiféle általánosítással foglalkozni, mert csak időpocséklás.

Részemről a témát lezártam.