TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[PHP-Wyrazenia regularne] Wyciagniecie poczatku tekstu. , KwiateK 3/02/05 19:16 Witam
Na wyrazeniach regularnych nie znam sie za bardzo wiec pytam
mam sobie string:
$string="jakiestamliterkiliterkiliterkiliterki XYZ innytexttexttexttext";
chce utworzyc string (nazwijmy go $x), ktorego wartoscia bedzie poczatek zmiennej $string (powiedzmy do momentu " XYZ") czyli:
$x="jakiestamliterkiliterkiliterkiliterki";
Jak wyciagnac ten poczatek przy uzyciu wyrazen regularnych?
PS. Mozecie polecic jakis dobry kurs/ksiazke/cokolwiek na temat wyrazen regularnych? ;)
PozdrNie jestem facetem na jedną noc.
Aż tyle czasu to ja nie mam... - prosze , Grocal 3/02/05 19:25
$tekst = 'aabbccXYZaabbccddee';
if (ereg("^(.+)XYZ(.+)", $tekst, $regs))
{
$poczatek = $regs[1];
$koniec = $regs[2];
}
http://www.google.pl/...l&btnG=Szukaj+z+Google
Powodzenia!Na pewno, na razie, w ogóle...
Naprawdę, naprzeciwko, stąd...
Ortografia nie gryzie! - a moze lepiej tak... , Kama 3/02/05 19:44
<?
$tekst = 'aabbccXYZaabbccddee';
if (preg_match("/^(.+)XYZ(.+)/", $tekst, $regs))
{
$poczatek = $regs[1];
$koniec = $regs[2];
}
var_dump($poczatek);
var_dump($koniec);
// lub jak chces zignorowac wielkosc liter stronga dzielacego to preg_match("/^(.+)XYZ(.+)/i"....
?>
preg_match jest wydajniejszy--- Mądry Polak po errorze --- - Ach... ci młodzi programiści PHP... , pachura 3/02/05 20:18
...do wszystkiego by wyrażeń regularnych używali. A te są dość obciążające dla serwera... oczywiście jeśli odpalamy sobie lokalnie i naraz ze strony WWW korzysta tylko jedna osoba (my), to nie ma problemu. Gorzej, gdy wrzuci się takie coś na portal...
Także lepiej poszukać XYZ zwykłym str_pos(), sprawdzić czy nie zwrócił FALSE (!==), i wyciąć początek przez substr(). Voila.
RTFM!
http://pl.php.net/...al/pl/pcre.pattern.syntax.php- i to w tym przypadku jest b. eleganckie , Grocal 3/02/05 21:08
... co nie umniejsza faktu, ze pytanie bylo o wyrazenia regularne...Na pewno, na razie, w ogóle...
Naprawdę, naprzeciwko, stąd...
Ortografia nie gryzie! - nooo... , xmac 3/02/05 21:13
w koncu ktos cos dobrego napisal :_)
wyrazenia regularne moze sa dobre w javie, ale na pewno nie w php, gdzie przy wiekszym obciazeniu serwera potrafia skutecznie go zarznac :_(
a jak juz koniecznie trzeba, to pomoc mozna znalezc tu http://weblogtoolscollection.com/regex/regex.phpdual&mobile power
XMAC - No nie zgodzę się do końca... , pachura 3/02/05 21:43
Duże obciążenie wynika z faktu że samo wyszukiwanie wyrażeń regularnych jest skomplikowanym procesem, a nie z tego że akurat w PHP je źle zaimplementowano. Zresztą PHP i tak korzysta z zewnętrznego "silnika" regexpów.
Wyrażenia regularne są jak najbardziej dla ludzi, ale a.) nie należy z nich korzystać jeśli rzeczywiście nie trzeba; b.) nie należy pisać nieoptymalnych wyrażeń... np. /.*DUPA.*/ to dla regexpów zabójstwo (tak jak np. LIKE '%DUPA%' dla bazy danych), natomiast takie np. /[Dd]upa[^a-z]/ powinno się wykonywać całkiem znośnie.- mi parsowanie dsn... , xmac 3/02/05 22:05
...powodowalo baaardzo duze obciazenie serwera, a zastosowanie zwyklego wyszukiwania i ciecia stringa nie dosc, ze jest zdecydowanie bardziej przejrzyste, to zajmuje duuuzo mniej czasu i nie obciaza procesora prawie wcale
musze sie przerzucic z php na jsp lub asp.net, bo na nich mozna zdecydowanie lepiej zarobic, no i wydajnosciowo wypadaja duzo lepiejdual&mobile power
XMAC
- OK. dzieki wszystkim za odpowiedzi , KwiateK 5/02/05 03:17
zdecydowalem sie uzyc metody pachury.
i wiecie co? nawet dziala ;)
dzieki wszystkim. pozdr.Nie jestem facetem na jedną noc.
Aż tyle czasu to ja nie mam... |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|