Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrazenie regularne
Forum PHP.pl > Forum > PHP
orson
witam

mam prosbe ... moze ktos ma linka do prostego wytlumaczenia jak tworzyc wyrazenia ? w manualu php jest tego duzo i jest to sczegolowe ale niestety jakos nie moge tego zalapac ... albo moze ktos mi ulozy takie wyrazenie ?

mam stringa ktory wyglada tak:
Kod
$string['menu'][1]['text'] = 'wartosc1';$string['menu'][1]['title'] = 'wartosc2';

nie jest to zmienna ale zawartos linji pobierana z pliku !!
i chce podmienic wartosc1 i wartosc2 na 2 inne zmienne ... jak ?

cya
adwol
Cytat
mam stringa ktory wyglada tak:
Kod
$string['menu'][1]['text'] = 'wartosc1';$string['menu'][1]['title'] = 'wartosc2';

nie jest to zmienna ale zawartos linji pobierana z pliku !!
i chce podmienic wartosc1 i wartosc2 na 2 inne zmienne ... jak ?

Tu akurat nawet nie są potrzebne wyrażenia regularne.
[php:1:ebcb8fba99]<?php
str_replace('wartosc1', 'cosinnego1', $tekst);
str_replace('wartosc2', 'cosinnego2', $tekst);
?>[/php:1:ebcb8fba99]
orson
witam ...

wartos1 oraz wartos2 sa nieznane !! dlatego wlasnie chyba tylko wyrazenia mi zostaja ...

cya
s_w_ir
A Ty skąd będziesz wiedział jekie to będą wartości? Jakbyś jakąś ją oznaczył np. przecinkiem na początku wartości a na końcu jest odstęp w postaci spacji to już lepiej i można by było kombinować:[php:1:622f0a31ec]<?php
$text="jo ,klop i hop ,mama";
if (ereg("[,][a-zA-Z0-9]+[ ]", $text, $wynik)) echo "$wynik[0]";
?>[/php:1:622f0a31ec]
No i to da tylko [klop] bo ma on przecinek na początku i spacje na końcu.
ps. wreszcie znalazłem w mojej książce to że wyrażenia regularne to popularne(?) regexpy

edit:
Mała poprawka da [,klop ] a potem możesz to sobie obrobić innymi funkcjami(explode)
bamboos
Witam!!
[php:1:ec237aebec]<?php
$text = '$string['menu'][1]['text'] = 'wartosc1';$string['menu'][1]['title'] = 'wartosc2';';
$nowa_wartosc1 = 'asdf1';
$nowa_wartosc2 = 'asdf2';
$text = preg_replace('/($string['menu'][1]['text']) = '(.+?)';/', '1 = '' . $nowa_wartosc1 . '';', $text);
$text = preg_replace('/($string['menu'][1]['title']) = '(.+?)';/', '1 = '' . $nowa_wartosc2 . '';', $text);
echo $text;
?>[/php:1:ec237aebec]

Myślę, że ten kodzik powinien pomóc smile.gif.
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.