Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] malutki problem
Sylwin
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 29.10.2006

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


Jak zrobić aby wyciąć część tego adresu "index.php?kat=1&pod=33" i zamienić go na "dodaj.php" (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Problem jest tutaj: ('/index.php(.*?)/') nie wiem jak zrobić żeby od index.php do końca zamieniało...

Wykompinowałem coś takiego:

  1. <?php
  2. $fp='http://www.katalog.szachowisko.pl/index.php?kat=1&amp;pod=33';
  3.  
  4. $pattern2 = array('/index.php(.*?)/');
  5. $replace = array('dodaj.php');
  6. $adres3= preg_replace($pattern2, $replace, $fp, 1);
  7.  
  8. echo"$adres3";
  9. ?>


---
Proszę poprawić temat wątku - tu każdy ma problem. Czasem malutki, czasem całkiem większy.
Tym razem upomnienie, jeżeli tytuł pozostanie bez zmiany - zamknę.
~siemakuba
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


moze to ci pomoze

  1. <?php
  2. $string = $_SERVER['REQUEST_URI'];
  3.  
  4. $pozycja=strpos($string,"?");
  5. $adres_strony = substr($string,0,$pozycja);
  6. echo'adres strony to'.$adres_strony;
  7. echo'<br />';
  8. echo $adres_strony.'?kat=dodaj.php';
  9. echo'<br />';
  10. $tablica_get = strstr($string,"?");
  11. $tablica_get = str_replace("%20"," ",$tablica_get);
  12. echo $tablica_get;
  13. ?>


Ten post edytował skowron-line 7.03.2007, 20:55:05
Go to the top of the page
+Quote Post
Sylwin
post
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 29.10.2006

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


Nie za bardzo... Mój kod jest dobry tylko nie zamienia całości od index.php

Co mam dać tutaj żeby zamieniało do konca adresu ('/index.php(.*?)/')
Go to the top of the page
+Quote Post
PiratNowegoPokol...
post
Post #4





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 12.10.2006

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


parse_url
Go to the top of the page
+Quote Post
Sylwin
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 29.10.2006

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


co parse? jak to wstawić do kudu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
PiratNowegoPokol...
post
Post #6





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 12.10.2006

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


$url = 'http://witaj.pl/index.php';
echo parse_url( $url , PHP_URL_PATH );
da ci
/index.php

choć jakby się uprzeć to:

echo basename( parse_url( $url , PHP_URL_PATH ) )
da ci samo index.php

PS:następnym razem szukaj w manualu

Ten post edytował PiratNowegoPokolenia 10.03.2007, 15:16:12
Go to the top of the page
+Quote Post
Sylwin
post
Post #7





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 29.10.2006

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


Szukałem w manualu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale nie chodzi mi o inny sposób tylko ten mój ! - wyrażenia regularne:

skrypt ma to:

index.php?kat=1&amp;pod=33

zamienić na to:

dodaj.php

i już (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cos jest nie tak w tej linijce:

$pattern2 = array('/index.php(.*?)/');

Ten post edytował Sylwin 10.03.2007, 15:26:26
Go to the top of the page
+Quote Post
Kicok
post
Post #8





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
Cos jest nie tak w tej linijce:

$pattern2 = array('/index.php(.*?)/');


A co oznacza kropka w wyrażeniach regularnych? :]
Chociaż z kropką też powinno działać. Błąd leży tutaj: (.*?) Znak zapytania w tej części wyrażenia informuje PHP, że ma dopasować jak najmniej tylko się da znaków, czyli w tym wypadku zero. Gdy pozbędziesz się pytajnika PHP będzie starało się dopasować jak najwięcej tylko się da znaków, czyli dopasuje wszystko do końca adresu URL.

Możesz też użyć znaku dolara (oznaczającego koniec przetwarzanych danych):
  1. <?php
  2. $pattern2 = array('/index.php(.*?)$/');
  3. ?>


Ten post edytował Kicok 10.03.2007, 17:00:48
Go to the top of the page
+Quote Post

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: 24.08.2025 - 04:26