Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] skrócenie skryptu PHP
mahomet91
post
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2008

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


Widam posiadam mały skrypot który zamienia mi wartości URl


Kod
$pobierz = str_replace('/folder','/nowa/wartosc', $_GET['url']);
$pobierz = str_replace('/folder2','/nowa/wartosc', $_GET['url']);
$pobierz = str_replace('/folder3','/nowa/wartosc', $_GET['url']);



jak zastąpić tę 3 liniki w jedną? Aby gdy skrypt wywoła zmienną $pobierz aby sprawdzało jaki w adresie jest folder i zmieniało na dany folder jaki jest przypisywany, w tej postaci niestety nie działa, pojedynczo jak umieszczę działa.. hmm dostanę pomocy ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
bełdzio
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


wywal entery to bedziesz mial jedna linie :-) a tak na powaznie to do str_replece możesz przekazać tablice zamiast stringow, albo uzyj strtr
Go to the top of the page
+Quote Post
crackcomm
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


nie możesz tego zrobić tak
  1. <?php
  2. $pobierz = str_replace('/folder','/nowa/wartosc', $_GET['url']);
  3. $pobierz = str_replace('/folder2','/nowa/wartosc', $_GET['url']);
  4. $pobierz = str_replace('/folder3','/nowa/wartosc', $_GET['url']);
  5. ?>

bo to będzie się nadpisywało
  1. <?php
  2. $pobierz = str_replace(array('/folder', '/folder3','/folder2'),'/nowa/wartosc', $_GET['url']);
  3. ?>


Ten post edytował crackcomm 4.07.2009, 17:21:31
Go to the top of the page
+Quote Post
mahomet91
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2008

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


Ale ja muszę miec zmienna $pobierz,

to mi nie działa ,hmmm

Kod
<?php
$array = array('/folder' => '/nowa/wartosc', '/folder2' => '/nowa/wartosc2');
foreach($array as $key => $value) str_replace($key,$value, $_GET['url']);
?>


Ten post edytował mahomet91 4.07.2009, 17:25:59
Go to the top of the page
+Quote Post
wrzasq
post
Post #5





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


@Wicepsik: juz crackcomm napisał, że twoje rozwiązanie jest niepoprawne, bo ciągle nadpisuje wynik. przedstawił on zresztą poprawną uproszczoną wersję.
Go to the top of the page
+Quote Post
Wicepsik
post
Post #6





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Racja, mój błąd (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
mahomet91
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2008

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


czyli widzę że nic z tego, hmm kurde no, bo jeżeli nie mam zmiennej pobierz nic nie zdziałam,
Go to the top of the page
+Quote Post
Wicepsik
post
Post #8





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Cytat(mahomet91 @ 4.07.2009, 19:15:59 ) *
czyli widzę że nic z tego, hmm kurde no, bo jeżeli nie mam zmiennej pobierz nic nie zdziałam,

crackcomm Ci napisał wszystko
Go to the top of the page
+Quote Post
mahomet91
post
Post #9





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2008

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


No tak pewnie to działa lecz zapomniałem powiedzie ze 2 wartości są taki same 3 jest inna, i znowu mały problemik ;/ z tego wszystkiego nawet to mi z głowy wyleciało, sory...
Go to the top of the page
+Quote Post
crackcomm
post
Post #10





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


co to znaczy, że 2 są takie same a trzecia jest inna ?
Go to the top of the page
+Quote Post
mahomet91
post
Post #11





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 11.03.2008

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


chodzi o to żę to ma wygladac tak:

Kod
<?php
$pobierz = str_replace('/folder','/folder1/folder2', $_GET['url']);
$pobierz = str_replace('/folder2','/folder1/folder2', $_GET['url']);
$pobierz = str_replace('/folder3','/folder3/folder4', $_GET['url']);
?>



więc to:
Kod
<?php
$pobierz = str_replace(array('/folder', '/folder3','/folder2'),'/nowa/wartosc', $_GET['url']);
?>

przypisuje to każdego folderu ta sama wartosc czyli ścieżkę..
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




strtr" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
zegarek84
post
Post #13





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


lub:
  1. <?php
  2. $zamiana = array(
  3.        '/folder' => '/folder1/folder2',
  4.        '/folder2' => '/folder1/folder2',
  5.        '/folder3' => '/folder1/folder4'
  6.        );
  7.  
  8. $pobierz = str_replace(array_keys($zamiana),array_values($zamiana), $_GET['url']);
  9. ?>

ale jak mawiają wiele dróg prowadzi do Rzymu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

a jesli to łatwiej było by oprzeć o wyrażenia regularne - coś na wzór .htaccess to możesz skożystać z funkcji np. preg_replace()

Ten post edytował zegarek84 4.07.2009, 20:27:08
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: 22.08.2025 - 15:13