Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ read from file

Napisany przez: topcio 27.11.2022, 12:33:27

Witajcie

Może głupie pytanie, ale

mam plik konfiguracyjny
i chciałbym z niego wyciągnąć dane, ale..


tekst_1 = [
0,
0,
0,
0,
]

tekst_2 = [
0,
0,
0,
0,
]


dane są mniej więcej w takiej postaci chciałbym wyciągnąć wszystko z tekst_2 czyli co jest po między [ i ] ale żeby każda z linii była w oddzielnym polu input do edycji.


Pomoże ktoś?


dzięki


Dobra może napiszę więcej, by było bardziej zrozumiałe.

Kod wygląda tak

  1. if ($first == "Zaopatrzenie") {
  2. http://www.php.net/echo "<h2 class=\"mt-2\"><p><b>", $first, "</b></p></h2>";
  3. foreach($type as $key => $value) {
  4. http://www.php.net/echo "<p><b>", $key, "</b></p>";
  5. http://www.php.net/echo "<ul>";
  6. foreach($value as $item) {
  7. if (http://www.php.net/strtok($item, '=') == "Test_1" ) {
  8. $config_file = "acc_config/" . $_GET['id'] . "/settings.cfg";
  9. $searched_settings = http://www.php.net/strtok($item, '=');
  10. http://www.php.net/header('Content-Type: text/plain');
  11. $contents = http://www.php.net/file_get_contents($config_file);
  12. $pattern = http://www.php.net/preg_quote($searched_settings, '/');
  13. $pattern = "/^.*$pattern.*\$/m";
  14. if (http://www.php.net/preg_match_all($pattern, $contents, $matches)) {
  15. $wynik = (http://www.php.net/str_replace(http://www.php.net/array($searched_settings, "\"", ": ", ",", " "), "",http://www.php.net/implode($matches[0])));
  16. }
  17. $true = "true";
  18. $false = "false";
  19. if(http://www.php.net/strpos($wynik, $true) !== false) {
  20. http://www.php.net/echo "<li>";
  21. http://www.php.net/echo "<input type=\"checkbox\" name=\"checkbox\" checked /> ";
  22. http://www.php.net/echo http://www.php.net/substr($item, http://www.php.net/strpos($item, "=") + 1), "</li>";
  23. }
  24. else if(http://www.php.net/strpos($wynik, $false) !== false) {
  25. http://www.php.net/echo "<li>";
  26. http://www.php.net/echo "<input type=\"checkbox\" name=\"checkbox\" unchecked /> ";
  27. http://www.php.net/echo http://www.php.net/substr($item, http://www.php.net/strpos($item, "=") + 1), "</li>";
  28. }
  29. }
  30. if (http://www.php.net/strtok($item, '=') == "Test_2" ) {
  31. $config_file = "acc_config/" . $_GET['id'] . "/settings.cfg";
  32. $searched_settings = http://www.php.net/strtok($item, '=');
  33. http://www.php.net/header('Content-Type: text/plain');
  34. $contents = http://www.php.net/file_get_contents($config_file);
  35. $pattern = http://www.php.net/preg_quote($searched_settings, '/');
  36. $pattern = "/^.*$pattern.*\$/m";
  37. if (http://www.php.net/preg_match_all($pattern, $contents, $matches)) {
  38. $wynik = (http://www.php.net/str_replace(http://www.php.net/array($searched_settings, "\"", ": ", ",", " "), "",http://www.php.net/implode($matches[0])));
  39. http://www.php.net/echo "<li>", http://www.php.net/substr($item, http://www.php.net/strpos($item, "=") + 1), " ";
  40. http://www.php.net/echo "<input class=\"form-text\" name=\"test\" type=\"text\" value=\"", $wynik , "\" required/>";
  41. http://www.php.net/echo " (Musi być w Twojej gildii)</li>";
  42. }
  43. }
  44. if (http://www.php.net/strtok($item, '=') == "Test_3" ) {
  45. $config_file = "acc_config/" . $_GET['igg_id'] . "/settings.cfg";
  46. $searched_settings = http://www.php.net/strtok($item, '=');
  47. http://www.php.net/header('Content-Type: text/plain');
  48. $contents = http://www.php.net/file_get_contents($config_file);
  49. $pattern = http://www.php.net/preg_quote($searched_settings, '/');
  50. $pattern = "/^.*$pattern.*\$/m";
  51. if (http://www.php.net/preg_match_all($pattern, $contents, $matches)) {
  52. $wynik = (http://www.php.net/str_replace(http://www.php.net/array($searched_settings, "\"", ": ", ",", " "), "",http://www.php.net/implode($matches[0])));
  53. }
  54. $true = "true";
  55. $false = "false";
  56. if(http://www.php.net/strpos($wynik, $true) !== false) {
  57. http://www.php.net/echo "<li>";
  58. http://www.php.net/echo "<input type=\"checkbox\" name=\"checkbox\" checked /> ";
  59. http://www.php.net/echo http://www.php.net/substr($item, http://www.php.net/strpos($item, "=") + 1), "</li>";
  60. }
  61. else if(http://www.php.net/strpos($wynik, $false) !== false) {
  62. http://www.php.net/echo "<li>";
  63. http://www.php.net/echo "<input type=\"checkbox\" name=\"checkbox\" unchecked /> ";
  64. http://www.php.net/echo http://www.php.net/substr($item, http://www.php.net/strpos($item, "=") + 1), "</li>";
  65. }
  66. }
  67. }
  68. http://www.php.net/echo "</ul>";
  69. }
  70. http://www.php.net/echo "</ul>";
  71. };
  72. }


Tak wygląda plik konfiguracyjny

  1. "tablica": {
  2. "Test_1": true,
  3. "Test_2": "TEXT",
  4. "Test_3": [
  5. true,
  6. true,
  7. true,
  8. true,
  9. true
  10. ],
  11. "Test_4": [
  12. 10,
  13. 20,
  14. 35,
  15. 50,
  16. 150
  17. ],
  18. "Test_5": [
  19. 0,
  20. 30,
  21. 30,
  22. 30,
  23. 30
  24. ]
  25. },



Jeśli w pliku konfiguracujnym jest tylko jedna linijka, której dotyczy zapytanie jest Ok, ale gdy już jest potrzeba zczytać kilka linijek, nie wiem jak to ugyźć, dla Test_3 Test_4 Test_5

Napisany przez: viking 27.11.2022, 12:54:52

Zdecyduj się jaki format danych masz bo już ten drugi przykład sugeruje json (json_decode).

Napisany przez: topcio 27.11.2022, 15:06:52

Zapewne masz rację, dawno nie siedziałem w pisaniu kodu, i muszę sporo nadrobić. Pewnie jest prostsza metoda na szukanie tego co potrzebuję w plikach konfiguracyjnych.




No ale ten plik konfiguracyjny nie wygląda jak json, może pierwsze pozycje tak, ale co gdy właśnie jest po ":" tablica w klamrach [1,2,3,4,5], bo właśnie z tym mam problem jak to odczytać

Napisany przez: viking 27.11.2022, 15:19:10

Ale co ma być? Próbowałeś to uruchomić?
https://onlinephp.io4g2VrBRKikpTdZAFjYCCSiGuESFKKMLGQOFoiIACsiaSOBB2LIrBJsgGGxrA1RshmMamcKYpQtTQ1ACbeabI5iGZQZgJNY2Xq1bdmpeLl6sssSg-pTS3QCOrOD8vPiU1OT8lVUMlUQfsFU1NawA%2C&v=8.1.13

Napisany przez: topcio 27.11.2022, 15:25:15

No tak, kod jest u mnie na serwerze i działa ale jeśli próbuję pobrać dane np z
"Test_3": [
true,
true,
true,
true,
true
],

to wyświetla mi tylko Test_3 [

jak zrobię

  1. http://www.php.net/var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));


to dostaję

  1. NULL NULL NULL NULL NULL
  2.  
  3. a dokładnie
  4.  
  5. NULL string(12) "Syntax error"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)