Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przeszukiwanie zawarości pliku.
Forum PHP.pl > Forum > PHP
mazyl
Witam!

mam pewien problem, mianowicie jak przeszukać plik .php czy np występuje dane wyrażenie (dana funkcja)

powiedzmy że mamy plik:

  1.  
  2. $cos1 = mysql_fetch_array(mysql_query("select * from tabela"));
  3.  
  4. echo $cos1['rekord1'];
  5.  
  6. if($cos1['rekord2'] == 1) {
  7. echo "coś";
  8. } else {
  9. echo "cos2";
  10. }
  11.  



i teraz nasza szukajka otrzymuje zmienną w postaci ilości występowanych wyrazów w pliku czyli np.

  1. $zmiennaif = ilość if w pliku
  2. $zmiennaecho = = ilość echo w pliku
  3.  
  4. if($zmiennaif > 0) {
  5. echo "jest";
  6. }
  7. elseif($zmiennaecho > 0 {
  8. echo "jest";
  9. } else {
  10. echo "nie ma";}


Jak czegoś takiego mozna dokonać ?
Prph
Za pomocą wyrażeń regularnych. Przykład:

  1.  
  2. $zawartosc = file_get_contents('plik.php');
  3.  
  4. $znalezione = array();
  5. if(preg_match_all('/if\s?\(/i', $zawartosc, $znalezione) {
  6. // ok, znalazło IFy
  7. echo 'tu jest ' . count($znalezione[0]); // indeks 0 lub 1, trzeba sprawdzić, nie pamiętam
  8. }
  9.  
Crozin
@Prph: Wyrażenia regularne na nic się tutaj nie zdadzą. Skąd będziesz wiedział, że "if (", bądź "if(" nie jest zwykłym tekstem, albo fragmentem wywołania funkcji?

Tutaj trzeba użyć normalnego parsera PHP (token_get_all) i po prostu policzyć ilość wystąpień konkretnych konstrukcji.
mazyl
głównie mi chodzi o przeszukiwanie pliku w poszukiwaniu

  1. header('Content-type: image/png');

lub coś takiego co wykrywa ze jest tam biblioteka GD.

2 waznym elementem jest to że ten "licznik" bedzie dołączany do każdego pliku .php
i musi on sprawdzać go bez podawania nazwy i ścieszki pliku.

wie może ktoś jak to zrobić ?
IProSoft
W każym pliku wstawiasz:

  1. $zawartosc = file_get_contents(__FILE__);
  2.  
  3. if( strpos("header('Content-type: image/png');", $zawartosc) === true ){
  4. //JEST
  5. }


Choć rozwiązywanie w ten sposób takich problemów nie jest najlepsze.
Do czego jest Ci to potrzebne?
mazyl
posiadam parenaście stron na swoim hostingu, nie chce do każdej dodawać w stopce rekamy, tylko uzylem auto_append_file w php.ini

problem w tym ze dodaje to rekamy również do stron gdzie wykorzystane jest GD a z rekamą GD nie zadziała.

Witam!
wcześniej nie mialem czasu aby to przetestować, dziś robiąc to okazało się że niestety żaden ze sposobow nie chce działać.

A może zamiast takiego kombinowania dałoby rade zamiast np. zamiast </body> wstawić
  1. mój tekst
  2. </body>

?
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.