Jaslabs: High performance Software blogā atradu nelielu skripta paraugu, kas, ja tiek palaists, izveido jaunu php skriptu. It kā nekas īpašs, bet pati metode ir interesanta.

Piemērā tiek izmantota __halt_compiler() funkcija, kas kad izsaukta, kā jau nosaukums saka priekšā, pārtrauc tālāku skripta pārsēšanu un kompilēšanu. Tādejādi aiz šīs funkcijas izsaukuma varam likt kādus vien datus vēlamies.

Darbības princips ir tāds:

  1. Palaižam skriptu,
  2. Skripts ielasa pats sevi sākot no baita, kas ir pieejams __COMPILER_HALT_OFFSET__ konstantē. Par šo konstanti var palasīt vairāk pie __halt_compiler() funkcijas apraksta. Šī konstante ir pieejama tikai skriptiem, kuros ir jau pieminētā funkcija,
  3. Skripts izveido jaunu failu un iekopē tajā iepriekš nolasītos datus,

Kāpēc vajadzīga šāda mahinācija, ja var vienkārši datus glabāt iekš stringa ? Īsti nezinu. Varbūt kāds no jums varētu pastāstīt ?