Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: linki a'la ForceType
Forum PHP.pl > Forum > Przedszkole
krysk
Witam! winksmiley.jpg

czy jest możliwość w samym php odczytanie danych po ukośniku ?
chciałbym np. z linka http://example.com/bla pobrać właśnie te bla dobrze by było, gdybym mógł też odczytać http://example.com/bla/.
Wyświetla mi sie error 404 oczywiście. Czy bez użycia htaccess coś zdołam zrobić?
e4you
uzyj [manual:af593ac8dd]substr[/manual:af593ac8dd]
przykladowa domena to http://example.com/bla

[php:1:af593ac8dd]<?php

$n1="tutaj bieżacy adres strony"; // $PHPSELF
$n = substr("$n1", 19); //zwraca bla
echo "$n";

?>[/php:1:af593ac8dd]

zwraca wszystko oprucz 19 pierwszych znakow.

troszke prymitywne ale powinno byc ok
matys
Tu masz cały przykład z manuala:
[php:1:05808f4bcc]
<?php
$rest = substr("abcdef", 1); // returns "bcdef"
$rest = substr("abcdef", 1, 3); // returns "bcd"
$rest = substr("abcdef", 0, 4); // returns "abcd"
$rest = substr("abcdef", 0, 8); // returns "abcdef"

// Accessing via curly braces is another option
$string = 'abcdef';
echo $string{0}; // returns a
echo $string{3}; // returns d
?>
[/php:1:05808f4bcc]
Liko
Hmm. Zrobiłem cos takiego.
[php:1:16630ea5a9]<?php
$varArray = array();
$varString = $_SERVER['PATH_INFO'];
echo $varString."<br />";
$varArray = explode("/", $varString);
foreach($varArray as $varValue) {
if( $varValue != '' ) {
$i++;
echo "$i -> $varValue<br />";
}
}
?>[/php:1:16630ea5a9]

Wtedy zapisujesz ten plik pod nazwą np. index.php i wpisujesz adres:
www.domena.pl/index/tutaj_wartosc/tutaj_wartosc/

Itd.
zeulus
a ja bym zrobil cos takiego:

[php:1:92adbea08c]<?php
$adres = "http://furum.php.pl/olaboga";
$adres = substr($adres,7); //teraz chyba tam bedzie "forum.php.pl/olaboga" bo poza 'http://'
//i teraz explode:
$tablica = explode($adres,'/');
//teraz $tablica[0] == "forum.php.pl", $tablica[1] == "olaboga"
?>[/php:1:92adbea08c]
chyba to by bylo na tyle ... :)
Liko
A skad wiesz ile bedzie ukosnikow po linku ? Skad wiesz ile wartosci bedzie chciał przekazac ? Nic tu ustawiasz wszystko na sztywno. Tutaj daje taki kod po ktorym bedziesz wiedział co i jak działa:
[php:1:5946f5bd1a]<?php
$varArray = array();
$adres = array();
$varString = $_SERVER['PATH_INFO'];
echo "Adres:<b> ".$varString."</b><br /><br>";
$varArray = explode("/", $varString);
foreach($varArray as $varValue) {
if( $varValue != '' ) {
$i++;
echo "$i -> $varValue<br />";
$adres[$i] = $varValue;
}
}
echo "<br><br>Tablica ze zmiennymi:<br><br> ";
foreach($adres as $key => $Value) {
echo "<b>$key</b> => <b>$Value</b><br>";
}
?>
[/php:1:5946f5bd1a]

Plik musisz zapisac np w index.php i wywołujesz adres tak:
www.domena.pl/index/pierwsza_wartosc/druga_wartosc/trzecia_wartosc/

Itd. Skrypt tworzy tablice, przy czym wartosc w adresie jest zapisana w tablicy pod indexem tym co w adresie. Czyli do "pierwsza_wartosc" odwołujemy sie przez "$adres[1]" do drugiej wartosci "$adres[2]" itd.
zeulus
Cytat
A skad wiesz ile bedzie ukosnikow po linku ? Skad wiesz ile wartosci bedzie chciał przekazac ? Nic tu ustawiasz wszystko na sztywno.


hmm... no bedzie sprawdzal :)
[php:1:d34795fef9]<?php
for ($i=0;$i<count($tablica);$i++) {
echo $tablica[$i] ."<br>";
}
?>[/php:1:d34795fef9]
e4you
w moim przypadku jest chyba najkorzystniej bo moze sobie wytnac obojetnie jaka ilosc znanow...
krysk
Właśnie mi chodzi, abym nie musiał wpisywać
http://example.ciom/index/bla
bo ten sposób znam winksmiley.jpg To jest przecież ForceType.
Chodzi mi o to, abym nie musiał podawać index (ma wyglądać jak bym chciał uzyskać dostęp do katalogu bla, a w rzeczywistości przekazać bla do skryptu jako zmienną).
krysk
Nikt nie wie? sad.gif
Bakus
moim zdaniem możesz wykorzystać ErrorDocument...
dla przykładu:
ErrorDocument /index.php

w index.php sprawdzasz referer i z niego wyciągasz w w/w sposób zmienne...

Nie jestem pewien, czy to będzie działać przy wszystkich ustawieniach przeglądarek (np. w przypadku gdy przeglądarka blokuje referery), ale teoretycznie to działa... winksmiley.jpg
Chociaż na dobrą sprawę w przypadku ErrorDocument chyba serwer generuje referera, więc powinno działać zawsze...
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.