Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usunięcie ciągu po danym znaku?
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich.

Potrzebuje usunąć dany ciąg.
Mając link:

http://strona.pl/link/linczek/prawidłowy/nazwa

Potrzebuje otrzymać

http://strona.pl/link/linczek/prawidłowy

Jaką funkcją mogę to zrobić, zakładając, że takie samo zostaje tylko

http://strona.pl/

reszta się zmienia. Mam nadzieje, że wytłumaczyłem dokładnie o co mi chodzi.
erix
substr + strrpos
adrianozo
A jakiś przykład jak tego użyć? Nie koniecznie kod, ale opis

Niestety teraz zauważyłem, że wszystko się zmienia. Nawet długość każdego członu
tehaha
tak na szybko możesz tak:
  1. $url = 'http://strona.pl/link/linczek/prawidłowy/nazwa';
  2. $url_array = explode('/', $url);
  3. unset($url_array[count($url_array)-1]);
  4. $final_url = implode('/', $url_array);
  5. echo $final_url;

ale na pewno jest lepszy sposób na wykonanie tego
adrianozo
Mam takie coś:

  1. $linczek = 'do usuniecia';
  2. $koniec = str_replace($linczek, "", $link[0]);


Teraz nie wiem co dać do $linczek, aby usunąć prawidłową ilość i to co chcę czyli wszystko po ostatnim znaku slash(/)

A da się zrobić tak, że jak kliknę w link to wykona się polecenie: Prawy przycisk myszy->zapisz element docelowy jako?
tehaha
Cytat(adrianozo @ 23.08.2010, 13:42:27 ) *
A da się zrobić tak, że jak kliknę w link to wykona się polecenie: Prawy przycisk myszy->zapisz element docelowy jako?


tak, dajesz link do pliku php w, którym ustawisz nagłówki, a wyślesz plik do przeglądarki, tu masz jakiś przykład: http://www.weberdev.com/get_example-4182.html
adrianozo
Mam problem, bo chce mi pobierać plik sciagnij.php, a nie ten co tak na prawdę chcę pobrać:

sciagnij.php
  1. <?php
  2. header('Content-Disposition: attachment; filename='.$link[0].'');
  3. header('Content-Type: application/x-unknown');
  4. ?>


Po małych zmianach plik wygląda teraz tak:

  1. <?php
  2. $plik = $_GET['plik'];
  3. header('Content-Type: application/force-download');
  4. header('Content-Disposition: attachment; filename="'.$plik.'"');
  5. ?>


Lecz jest problem plik się zapisuje, lecz waży 0 kb i nic w nim nie ma....
vermis
A gdzie odczytujesz zawartość pliku?

podpowiem, użyj readfile()
adrianozo
Teraz jest tak:

  1. <?php
  2. $plik = $_GET['plik'];
  3. $rest = substr("$plik", -29);
  4. header('Content-Type: application/force-download');
  5. header('Content-Disposition: attachment; filename="'.$rest.'.mp3');
  6. readfile(''.$plik.'');
  7. ?>


Lecz pliki, które ważą tak na prawdę ok. 3MB według niego jest to ok. 400kb i próbując otworzyć ten plik jednym słowem nie da się

sciagnij.php

  1. <?php
  2. $plik = $_GET['plik'];
  3. $rest = substr("$plik", -29);
  4. header("Pragma: public");
  5. header("Expires: 0");
  6. header("Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0");
  7. header("Content-Type: application/force-download");
  8. header("Content-Type: application/octet-stream");
  9. header("Content-Type: application/download");
  10. header('Content-Disposition: attachment; filename="'.$rest.'.mp3');
  11. header("Content-Transfer-Encoding: binary");
  12. header("Content-Length: ".filesize($plik));
  13. $pliczek = fopen(''.$plik.'.mp3', 'r');
  14. while(!feof($pliczek))
  15. {
  16. echo fread($pliczek, 2048);
  17. }
  18. fclode($pliczek);
  19. ?>


I podczas ściągania Otrzymuje komunikat: Szacowany czas nieznany i waga pliku rośnie
Noidea
1. Nadpisujesz sobie nagłówek Content-Type. Używaj tylko jednego
2. Masz "czas nieznany" podczas ściągania, bo wysyłasz złą wielkość pliku w nagłówku. Przypatrz się linijkom 12 i 13
3. Do wysłania zawartości pliku wystarczy readfile, nie trzeba się bawić w fopen/fread/fclose
adrianozo
1. Poprawione
2. Nie bardzo wiem co jest źle
3. Poprawione

  1. <?php
  2. $plik = $_GET['plik'];
  3. header("Pragma: public");
  4. header("Expires: 0");
  5. header("Cache-Control: no-store, must-revalidate, post-check=0, pre-check=0");
  6. header("Content-Type: application/force-download");
  7. header('Content-Disposition: attachment; filename="'.$plik.'.mp3');
  8. header("Content-Transfer-Encoding: binary");
  9. header("Content-Length: ".filesize($plik));
  10. readfile(''.$plik.'');
  11. ?>


Jak podzielić link na części i każdą część przypisać do innej zmmiennej?

http://czesc1/czesc2/czesc3/czesc4/czesc5

i

$czesc1 = 'czesc1';
$czesc2 = 'czesc2';
$czesc3 = 'czesc3';
$czesc4 = 'czesc4';
$czesc5 = 'czesc5';

i później sobie to pobiorę
tą zmienną którą będę chciał to użyje.
erix
http://forum.php.pl/index.php?s=&showt...st&p=782110

Poza tym, poczytaj o tablicach.
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.