MARVIN1994PL Opublikowano 20 Kwietnia 2015 Udostępnij Opublikowano 20 Kwietnia 2015 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 Więcej opcji udostępniania...
Cuan Opublikowano 20 Kwietnia 2015 Udostępnij Opublikowano 20 Kwietnia 2015 W bazie chcesz zapisać całą komendę, czy jej parametry? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MARVIN1994PL Opublikowano 20 Kwietnia 2015 Autor Udostępnij Opublikowano 20 Kwietnia 2015 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 Więcej opcji udostępniania...
Cuan Opublikowano 20 Kwietnia 2015 Udostępnij Opublikowano 20 Kwietnia 2015 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 Więcej opcji udostępniania...
MARVIN1994PL Opublikowano 20 Kwietnia 2015 Autor Udostępnij Opublikowano 20 Kwietnia 2015 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 Więcej opcji udostępniania...
Cuan Opublikowano 21 Kwietnia 2015 Udostępnij Opublikowano 21 Kwietnia 2015 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 Więcej opcji udostępniania...
MARVIN1994PL Opublikowano 21 Kwietnia 2015 Autor Udostępnij Opublikowano 21 Kwietnia 2015 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 Więcej opcji udostępniania...
Cuan Opublikowano 22 Kwietnia 2015 Udostępnij Opublikowano 22 Kwietnia 2015 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 Więcej opcji udostępniania...
MARVIN1994PL Opublikowano 22 Kwietnia 2015 Autor Udostępnij Opublikowano 22 Kwietnia 2015 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 Więcej opcji udostępniania...
Cuan Opublikowano 22 Kwietnia 2015 Udostępnij Opublikowano 22 Kwietnia 2015 MARVIN1994PL, nie rozumiem zbytnio do jakiś to celów, dlatego trudno mi to ocenić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MARVIN1994PL Opublikowano 25 Kwietnia 2015 Autor Udostępnij Opublikowano 25 Kwietnia 2015 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 Więcej opcji udostępniania...
Cuan Opublikowano 25 Kwietnia 2015 Udostępnij Opublikowano 25 Kwietnia 2015 hm, to twoje rozwiązanie powinno być w miarę odpowiednie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MARVIN1994PL Opublikowano 26 Kwietnia 2015 Autor Udostępnij Opublikowano 26 Kwietnia 2015 Oki, wiec do zamkniecia Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Problem wciąż nierozwiązany? Dodaj swoją odpowiedź
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się