code invoegen op regelnummer?
Stel ik heb een index.php is het dan mogelijk om aan dit bestand op een bepaald regelnummer code in te voegen? Zo ja hoe? En heb ik dan te maken met schrijfrechten?
Wat ik daadwerkelijk wil is vrij lastig uit te leggen dus ik geef nu even een simpel voorbeeld. Stel je roept index.php aan. Als dat bestand wordt aangeroepen dan moet er op regel 10 bijvoorbeeld een regel worden ingevoegd:
$aangeroepen = true;
Kan zoiets?
Nieuw array() maken en de eerste 9 regels overzetten.
Nieuwe regel toevoegen.
Rest overzetten en saven.
Ah zo, thanks SanThe. Moet je het bestand dan wel (handmatig) schrijfrechten toekennen? Of kan dat op de een of andere manier ook automatisch?
chmod, maar PHP (apache, of via suphp de uploader) moet dan wel al of eigenaar zijn, of in de groep van het van is bestand horen.
Gewijzigd op 09/06/2011 15:12:30 door Jelmer -
Maar dat onderdeel heb ik nooit zo goed begrepen.
Stel nu dat het bestand index.php niet schrijfbaar is. Kan dit bestand zichzelf dan schrijfbaar maken via dat chmod? Ik hoop dat jij daar het antwoord op weet.
Ja dat kan. Zie wel de (eigenaar) opmerking van Jelmer.
Ik zal mijn vraag wat concreter proberen te stellen. Welke handelingen moet ik verrichten zodat het bestand zichzelf kan "beschrijven" :) en zichzelf vervolgens weer onschrijfbaar maakt. Dus het bestand wordt aangeroepen, verandert zijn schrijfrechten, schrijft zichzelf opnieuw weg en wijzigt zijn schrijfrechten vervolgens weer zodat het niet meer schrijfbaar is.
En blijft het bestand dan beschrijfbaar als ik het van de ene naar de andere server kopieer of van de ene naar de andere map? Of moet ik dan telkens handmatig instellingen wijzigen of iets dergelijks?
Ik hoop dat iemand kan uitleggen hoe dit werkt. Alvast dank!
Gewijzigd op 09/06/2011 18:00:52 door Ozzie PHP
Doormiddel van chmod volgens mij maar dat weet ik neit zeker.
Ik hoopte dat iemand een voorbeeldje hiervan kan geven en of iemand weet of ik dan eerst de scrhijfrechten / eigenschappen van het document moet aanpassen of iets dergelijks...
- SanThe - op 09/06/2011 13:39:33:
Het te wijzigen bestand inlezen in een array() met file().
Nieuw array() maken en de eerste 9 regels overzetten.
Nieuwe regel toevoegen.
Rest overzetten en saven.
Nieuw array() maken en de eerste 9 regels overzetten.
Nieuwe regel toevoegen.
Rest overzetten en saven.
Het inlezen lijkt niet te werken. De array blijft leeg. Ik denk dat het probleem is dat het om een php bestand gaat. Als ik in het in te lezen php bestand echo 'test'; zet dat verschijnt 'test' in de array. Het lijkt dus alsof je de file functie geen php bestand kunt inlezen. Iemand anders nog een andere optie?
Post anders eens de code die je nu heb.
echo 'test';
In index.php roep ik test.php (in de map 'test') aan waarin ik de volgende code heb staan:
resultaat op scherm:
test
array(1) { [0]=> string(4) "test" }
Als ik test.php aanpas in:
of in:
dan staat er op het scherm:
test
array(40) { [0]=> string(6) "" }
In alle gevallen komt de php code zelf dus niet tevoorschijn. Wat doe ik niet goed?
Toevoeging op 12/06/2011 15:06:08:
He wacht...
Ik zie nu dat in het laatste geval de array wel gevuld is!!
Als ik in de broncode kijke dan zie ik de code wel staan. Als ik var_dump vervang door print_r komt de code wel tevoorschijn.
Bijzonder :-s