Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [regexp] Odszukiwanie zmiennych w stringu
SHiP
post
Post #1





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Nie wiem co jest źle ale moje wyrażenie po prostu nie działa. Musze odnaleźć wszystkie zmienne w danym ciągu znaków np.
Kod
$variable
$variable['array']
$variable -> objectData
or something more complicated
$variable['array'] -> objectNode['arrayindex'] -> somethingelse -> somethingelse2

Próbowałem czegoś takiego:

  1. <?php
  2. $param = 'somethig else $myVariable["asľasd"] -> something sdfsdf'
  3. preg_match_all('#$([a-zA-Z0-9_]+)(?Ž[(.*?)])?((?R)|-> [a-zA-Z0-9_]+)?#x', $param, $vars);
  4. print_r($vars);
  5. ?>

ale to znajduje jedynie $myVariable

Jakieś pomysły?

Ten post edytował SHiP 26.08.2007, 21:33:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SHiP
post
Post #2





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedz. W wolnym czasie udalo mi sie stworzyć coś takiego
  1. <?php
  2. preg_match_all('#$([a-zA-Z0-9_]+|{(?:\"|').*?(?:\"|')})
  3. (
  4. (s*[(?:\"|').*?(?:\"|')])
  5. |
  6. s* (-> s*(?:[a-zA-Z0-9_]+|{(?:\"|').*?(?:\"|')}))
  7. )*#xi', $param, $vars);
  8. ?>


Musze to jeszcze lekko rozbudowac(zagnieżdżanie zmiennych w blokach { } oraz w indeksach tablicowych) i będzie jak znalazł do mojej biblioteki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

EDIT:
Hmm dziwne ale IPB konwertuje \s na s ;]

EDIT2:

Mam gada (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Kod
#\$(?:[a-zA-Z0-9_]+|   {(?:(?:'.*?'|".*?"|(?R))\.)*  (?:'.*?'|".*?"|(?:(?R)))})
    (?:
    (?:\s*\[ (?:(?:'.*?'|".*?"|(?R))\.)*  (?:(?:"|').*?(?:"|')|(?:(?R)))  \])
|
    \s* (?:-> \s*(?:[a-zA-Z0-9_]+  |   {(?:(?:'.*?'|".*?"|(?R))\.)*  (?:'.*?'|".*?"|(?:(?R)))}))
)*#xi


Ten post edytował SHiP 27.08.2007, 19:08:12
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 23:57