Skocz do zawartości
PL
Szukaj na Pecetowiczu
  • Utwórz konto

Config PHP String CMD w SQL


Rekomendowane odpowiedzi

Witajcie kochani,

Mam następujący problem ...

"string" ładowany/wprowadzany z/do SQL to tak naprawdę linijka startowa powiedzmy do ssh i wygląda mniej więcej tak

java -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:ParallelGCThreads=3 -XX:MaxGCPauseMillis=5 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -Xnoclassgc -XX:UseSSE=3 -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedStrings -XX:+OptimizeStringConcat -XX:+AggressiveOpts  -Xms24M -Xmx5G -jar spigot.jar
Jak widzicie posiada sporo parametrów i aż 509 znaków. Jak optymalnie przetrzymywać to w SQL tak aby użytkownik mógł zmodyfikować biorąc pod uwage kontrole danych? Myślałem o czymś z select or null(wtedy parametr sie nie pojawia). Zapisywanie danych to nie problem, Ale jak zrobić ich odczyt? Edit: Prototyp
$cmd = explode(" ", $tablica['cmd']);


			for ($i = 0; !empty($cmd[$i]); $i++) {

    			echo $i." | ".$cmd[$i];

				$pos = strpos($cmd[$i], "=");

				if ($pos !== false) {

					echo " | ".$pos." | "; 

					$temp = explode("=", $cmd[$i]); 

					echo $temp[0]." | ".$temp[1];}

				echo "";

			}

			echo "";

Odnośnik do komentarza
Udostępnij na innych stronach

W bazie chcesz zapisać całą komendę, czy jej parametry?

Odnośnik do komentarza
Udostępnij na innych stronach

W bazie chcesz zapisać całą komendę, czy jej parametry?

No własnie nwm co lepiej

komenda może mieć więcej parametrów/mniej lub brak, wiec lepiej żeby to było dynamicznie. myśle że zapisanie całej komendy to dobre rozwiązanie

Więc wejście jest takie

$tablica['cmd'] = "java -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:ParallelGCThreads=3 -XX:MaxGCPauseMillis=5 -XX:+UseAdaptiveGCBoundary -XX:-UseGCOverheadLimit -XX:+UseBiasedLocking -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=15 -Xnoclassgc -XX:UseSSE=3 -XX:+UseFastAccessorMethods -XX:+UseStringCache -XX:+UseCompressedStrings -XX:+OptimizeStringConcat -XX:+AggressiveOpts  -Xms24M -Xmx5G -jar spigot.jar"

Odnośnik do komentarza
Udostępnij na innych stronach

Wyrażenia regularne.

$input = $tablica['cmd'];

preg_match_all('#((-XX:([A-Za-z]{1,})=([0-9]{1,}))||(XX:+([A-Za-z]{1,}))||(-([A-Za-z]{1,})))#si', $input, $output);

var_dump($output);

Odnośnik do komentarza
Udostępnij na innych stronach

Dodano: 20 Kwiecień 2015, 23:35

Wyrażenia regularne.

$input = $tablica['cmd'];

preg_match_all('#((-XX:([A-Za-z]{1,})=([0-9]{1,}))||(XX:+([A-Za-z]{1,}))||(-([A-Za-z]{1,})))#si', $input, $output);

var_dump($output);

Pomysł dobry ale rezultat dość dziwny link

Odnośnik do komentarza
Udostępnij na innych stronach

Ogólnie nie wiem czemu wybiera spacje. :/ Orłem w wyrażeniach regularnych nie jestem.

Zawsze można to podzielić za pomocą explode.

Jeżeli to i tak ma być jedna konfiguracja tej komendy, to za parametry mogą robić odpowiednie kolumny i wtedy będzie o wiele łatwiej.

Odnośnik do komentarza
Udostępnij na innych stronach

ja zrobiłem to tak

$cmd = explode(" ", $tablica['cmd']); 


           for ($i = 0; !empty($cmd[$i]); $i++) { 

               echo $i." | ".$cmd[$i]; 

               $pos = strpos($cmd[$i], "="); 

               if ($pos !== false) { 

                   echo " | ".$pos." | "; 

                   $temp = explode("=", $cmd[$i]); 

                   echo $temp[0]." | ".$temp[1];} 

               echo ""; 

           } 

           echo "";

Odnośnik do komentarza
Udostępnij na innych stronach

O ile nie ma dużo rekordów z komendą, to taki sposób może być odpowiedni.

Odnośnik do komentarza
Udostępnij na innych stronach

To ma działać dla pojedynczej edycji. Docelowo ma być około 400 aktywnych. Gdzie kod up to tylko edycja.

Jeszcze nwm co i jak będzie sprawdzalo stan rzeczywisty, na 70% cos będzie sprawdzalo plik start.sh albo kopiowalo gotowy i sprawdzony przed wykonaniem komendy.

Myslisz ze funkcja evil będzie przydatna?

Albo moze lepiej rozdzielic to na 3 tabele?

Odnośnik do komentarza
Udostępnij na innych stronach

MARVIN1994PL, nie rozumiem zbytnio do jakiś to celów, dlatego trudno mi to ocenić.

Odnośnik do komentarza
Udostępnij na innych stronach

MARVIN1994P Pisze "prosty" panel pod hosting oparty o docker.io

PS: pisze go dla siebie jako trening

Odnośnik do komentarza
Udostępnij na innych stronach

hm, to twoje rozwiązanie powinno być w miarę odpowiednie.

Odnośnik do komentarza
Udostępnij na innych stronach

Oki, wiec do zamkniecia :)

Odnośnik do komentarza
Udostępnij na innych stronach

Kontynuuj dyskusję

Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.

  • Dodaj nową pozycję...
  • Dodaj nową pozycję...