Kod funkcji to:
function getHiddenParam($strona, $paramName) { $pattern = '/name=\"'.$paramName.'\" value=\"([a-z0-9]+)\"/'; //echo "wzorzec: ".$pattern."<br>"; return $matches[1][0]; return false; }
dla takiego ciągu:
value="s243d45f6f" />
wywołanie
zwróci 452
$result = getHiddenParam($ciag, 'b')
ale dla
$result = getHiddenParam($ciag, 'hash')
funkcja zwróci false.
Jak poprawić to wyrażenie aby działało ono tak jak chcę?
I drugie pytanie (aczkolwiek nie potrafię dostarczyć do niego działającego - a właściwie niedziałającego kodu) dotyczy dziwnego zachowania na jakie natrafiłem wczoraj podczas pisania tej funkcji. Jeżeli w ifie w funkcji jako pattern dostarczałem zbudowany na miejscu wzór czyli miałem:
to funkcja nie działała. Byłem wtedy pewien że wyrażenie jest dobre więc przeniosłem je do zmiennej $pattern i dopiero wtedy przekazałem jako parametr do funkcji - i zaczęło działać (przynajmniej dla 1 literowych nazw). Czy wie ktoś czym to jest spowodowane? Zaznaczam, że teraz nie udało mi się spowodować takiego zachowania ale od tego czasu coś zmieniałem w tej funkcji.