Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usunięcie ciągu po danym znaku?
adrianozo
post
Post #1





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
erix
post
Post #2





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




substr + strrpos
Go to the top of the page
+Quote Post
adrianozo
post
Post #3





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


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
Go to the top of the page
+Quote Post
adrianozo
post
Post #5





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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?
Go to the top of the page
+Quote Post
tehaha
post
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


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
Go to the top of the page
+Quote Post
adrianozo
post
Post #7





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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....
Go to the top of the page
+Quote Post
vermis
post
Post #8





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

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


A gdzie odczytujesz zawartość pliku?

podpowiem, użyj readfile()

Ten post edytował vermis 23.08.2010, 14:33:47
Go to the top of the page
+Quote Post
adrianozo
post
Post #9





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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

Ten post edytował adrianozo 23.08.2010, 15:16:43
Go to the top of the page
+Quote Post
Noidea
post
Post #10





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


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
Go to the top of the page
+Quote Post
adrianozo
post
Post #11





Grupa: Zarejestrowani
Postów: 733
Pomógł: 4
Dołączył: 11.11.2009

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


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.
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




http://forum.php.pl/index.php?s=&showt...st&p=782110

Poza tym, poczytaj o tablicach.
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: 28.09.2025 - 11:08