Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ucinanie tekstu przed daną frazie
Forum PHP.pl > Forum > Przedszkole
szymek001
Witam, czy da się za pomocą PHP uciąć tekst przed daną frazą?

Np. z adresu:
Kod
https://play.google.com/store/apps/details?id=com.gameloft.android.ANMP.GloftA7HM&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLmdhbWVsb2Z0LmFuZHJvaWQuQU5NUC5HbG9mdEE3SE0iXQ..


zrobić:
Kod
https://play.google.com/store/apps/details?id=com.gameloft.android.ANMP.GloftA7HM


Wyciąłem wszystko od frazy '&feature' (łącznie z nią) - można to zrobić automatycznie? Nie mogę tego zrobić ucinając x znaków z końca, bo długości są różne, więc substr raczej odpada..
abort
Jeśli ma wyłuskać wszystko to, co jest przed pierwszym "&" (bo w przykładzie by się zgadzało) i ZAWSZE TYLKO TO, to spróbuj popawić się wyrażeniami regularnymi.
szymek001
  1. <?php
  2. echo preg_replace("/(.*?)&(.*?)/", "$1 <br />", "https://play.google.com/store/apps/details?id=com.gameloft.android.ANMP.GloftA7HM&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLmdhbWVsb2Z0LmFuZHJvaWQuQU5NUC5HbG9mdEE3SE0iXQ..");
  3. ?>


Co robię źle? Próbuje wyświetlić tylko początek ($1), jednak druga część i tak zawsze się pojawia.. Wstawiłem <br /> żeby było widać że się to oddziela. Jak potraktować końcówkę razem ze znakiem &?

borek199
A może explode()?

  1. $zmienna='https://play.google.com/store/apps/details?id=com.gameloft.android.ANMP.GloftA7HM&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLmdhbWVsb2Z0LmFuZHJvaWQuQU5NUC5HbG9mdEE3SE0iXQ';
  2.  
  3. $nowaZmienna=explode('&',$zmienna);
  4.  
  5. echo $nowaZmienna[0];
abort
Te dwa działają. Pomyśl, dlaczego
Kod
'/(.*?)&(.*?)$/'
'/(.*?)&(.*)/'

Każdy z nich różni się jednym znakiem od Twojego.

@borek199: tak, explode tu się doskonale sprawdzi. I jest wiele szybsze od preg_match (kiedyś na moich danych wyszło mi, że trzykrotnie szybsze).
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.