Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Instalacja kodu do pliku
Forum PHP.pl > Forum > PHP
MESSIAH :)
Szukam jakiegos malego gotowego kodu ktory by instalowal kod pomiedzy kodem w pliku:
Dokladnie to tak to ma wygladac. Otwieram plik php i szukam w nim kodu np:
  1. $a = 34

I teraz dodaje nowa linie:
  1. $a = 34
  2. $b = 35

Chcialbym tez miec jakas kontrole nad tym i np w przyszlosci wymazac dana linie z tego pliku bez wzgledu na kolejnosc usuwania.
Probowalem szukac pod nazwa
Cytat
php install code into file

lecz bez efektu.
Tomplus
W wielu edytorach jest coś takiego: CTRL + F (H)
Znajdź "ABC" zamień na "ABC\nCBA", zamień w całym pliku/zamień we wszystkich plikach.
MESSIAH :)
Cytat(Tomplus @ 16.11.2019, 17:06:29 ) *
W wielu edytorach jest coś takiego: CTRL + F (H)
Znajdź "ABC" zamień na "ABC\nCBA", zamień w całym pliku/zamień we wszystkich plikach.

facepalmxd.gif
Szanowny kolego to to male dziecko wie. Mi chodzi o cos takiego:
Mam plik php ktory otwiera inne pliki php i dodaje kod zdefiniowany z poprzedniego pliku. Taki instalator kodu php napisany w php.
Mam szkielety plikow gdzie chce dodawac nowe kody. I z czasem chce je w calosci usunac lub zastapic nowymi wersjami.
batman
sed. Odpalasz to przy pomocy exec i problem z głowy.
MESSIAH :)
Cytat(batman @ 17.11.2019, 01:20:10 ) *
sed. Odpalasz to przy pomocy exec i problem z głowy.

To ma byc w jezyku php a nie unix. Chce aby instalacja odbywala sie z pliku zip lub cos w ten desen.
batman
W php wyglądałoby to tak:
- zapisz zawartość pliku do zmiennej (np. przy użyciu file_get_contents)
- użyj str_replace (lub preg_replace, jeśli część szukanej linii jest zmienna)
- zapisz zawartość zmodyfikowanej zmiennej do pliku

Jeśli plik, który chcesz zmodyfikować jest duży, użyj funkcji file i w pętli leć po odczytanych liniach i wstaw nową linię w miejscu, które Ci odpowiada.

edit
Jest jeszcze trzecia możliwość. Wszystkie pliki, które chcesz modyfikować trzymaj jako szablony (możesz użyć, np. Twig). W momencie, gdy chcesz zmodyfikować plik, wyciągasz wszystkie potrzebne dane, przekazujesz je do szablonu i generujesz plik, którym nadpisujesz już istniejący.
MESSIAH :)
Ja myslalem bardziej o czyms taki:
1 - Wypakuj plik do temp folder
2 - Otworz wypakowany plik i zapisz wartosc do zmiennej
3 - Otworz docelowy plik ktory ma byc zmieniony i wyszukaj kodu
4 - Dodaj nowy kod po lub przed wyszukanym kodem
5 - Zapisz zmieniony plik
6 - Usun temp folder.

Tylko jak wyszukiwac linie aby instalowac nowy kod a w przyszlosci go usuwac?
Tomplus
w PHP też jest funkcja exec()

Ale jak już. Spójrz na kod np. Simple Machine Forum, tam pobierając paczkę możesz zainstalować, tak że nie które pluginy wstrzykują kod w konkretne miejsca, z opcją zwrotną.
batman
  1. <?php
  2.  
  3. // zawartosc pliku
  4. $file = '<?php
  5. $a = 1;
  6. $b = 2;
  7. $c = 3;
  8. ';
  9.  
  10. // linia, po której zostanie dodany nowy kod
  11. $installAfter = '$a = 1;';
  12.  
  13. // kod do "instalacji"
  14. $toInstall = '$aa = 11;';
  15.  
  16. // "instalacja" kodu
  17. $install = str_replace($installAfter, $installAfter.PHP_EOL.$toInstall, $file);
  18.  
  19. echo $install;
  20.  
  21.  
  22. /*
  23. # php script.php
  24.  
  25. <?php
  26. $a = 1;
  27. $aa = 11;
  28. $b = 2;
  29. $c = 3;
  30.  
  31. */
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.