Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] skrócenie skryptu PHP
Forum PHP.pl > Forum > PHP
mahomet91
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 ?
bełdzio
wywal entery to bedziesz mial jedna linie :-) a tak na powaznie to do str_replece możesz przekazać tablice zamiast stringow, albo uzyj strtr
crackcomm
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. ?>
mahomet91
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']);
?>
wrzasq
@Wicepsik: juz crackcomm napisał, że twoje rozwiązanie jest niepoprawne, bo ciągle nadpisuje wynik. przedstawił on zresztą poprawną uproszczoną wersję.
Wicepsik
Racja, mój błąd wstydnis.gif
mahomet91
czyli widzę że nic z tego, hmm kurde no, bo jeżeli nie mam zmiennej pobierz nic nie zdziałam,
Wicepsik
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
mahomet91
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...
crackcomm
co to znaczy, że 2 są takie same a trzecia jest inna ?
mahomet91
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ę..
zegarek84
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 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()
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.