Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[PROBLEM] Formularz
#1
Witam, otóż chciałbym napisać sobie formularz który będzie działał tak:

Użytkownik w polu tekstowym wklei link do zippyshare np. http://www9.zippyshare.com/v/123456/file.html

formularz pobierał by: 1 i 2:

http://{1}.zippyshare.com/v/{2}/file.html

następnie uzupełniał taki oto kod:
Kod PHP:
<script type="text/javascript">var zippywww="tutaj $1";var 
zippyfile="tutaj $2";var zippydown="ffffff";var zippyfront="000000";var 
zippyback="ffffff";var
 
zippylight="000000";var zippywidth=680;var zippyauto=false;var 
zippyvol=80;</script><script type="text/javascript" 
src="http://api.zippyshare.com/api/embed.js"></script


i tam by jeszcze było że pobiera cały ten link
i tworzy obrazkowy link, ale z tym to już sobie
dam radę, tylko z tym co opisałem mam problem, głównie z
tym pobieraniem, nie wiem jak zrobić żeby
pobierało to 1 i 2 , uzupełnianie kodu mam
opanowane, przejrzałem bardzo dużo poradników, ale nie znalazłem
odpowiedzi na to pytanie, jak to pobierać i
uzupełniać tylko tym 1 i 2 ?

Wiem że dla was jest to banalne, tak więc proszę
o wytłumaczenie, lub cały gotowy kod, jeśli nie
dało by rady zrealizować tego w PHP, to prosił
bym o skrypt w JS. Z góry dzięki.
Odpowiedz
#2
w php skorzystaj z dirname oraz z basename
otrzymasz katalog pliku oraz samą nazwę pliku

jeżeli chcesz wyciągnąć poszczególne fragmenty adresu to skorzystaj z funkcji strpos(do namierzenia znaku) oraz substr(do skopiowania zawartosci)

w javascript masz też funkcje search i substr

działaj

a gotowca tutaj nie dostaniesz raczej
Odpowiedz
#3
Da radę: pathinfo()

@camelrafal - jemu chodzi o pobieranie zmiennych ze ścieżki Smile
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#4
Edit właściwie to początek mogę uciąć wpisując cyfre 7 zamiast "$a, strpos($a, "//")" ale co z resztą?

Chyba żle się wyraziłem:

Chce z pole pobrać do textarea 2 zmienne z linku np: http://www65.zippyshare.com/v/68123444/file.html

http://www(65).zippyshare.com/v/(68123444)/file.html chce pobrać to co w nawiasie i nic więcej.
Odpowiedz
#5
musiałbyś sprawdzać czy wpisany link jest prawidłowy bo kod może ci się rozlecieć jeżeli ktoś coś źle zrobi lub link będzie się różnił (różni ludzie = różne działania)
najlepiej sprawdzić poprawność adresu funkcją preg_match poszukaj w necie może znajdziesz jakiegoś gotowca
no i możesz się zainteresować też funkcją parse_url aby rozbić adres na części składowe i operacje dokonywać tylko na tym elemencie który potrzebujesz zmniejszysz w ten sposób prawdopodobieństwo wystąpienia błędów
może także ci się przydać funkcja explode która dzieli stringa na kawałki w miejscu wystąpienia danego znaku np '.'
funkcja count liczy ile elementów jest w tablicy np po rozbiciu przez explode
musisz zaznajomić się dobrze z tymi funkcjami (wiedzieć jak która z nich działa i co daje w rezultacie) wtedy będziesz wiedział co robić i kiedy jaką wykorzystać
wystarczy wpisać w google którąś funkcje i otrzymujesz multum wyników, opisów, instrukcji a nawet przykładów

a co do twojego kodu to widze tam tylko
$aa=substr($link,-18,-10);
co jest bez sensu bo negatywne wartości oznaczają że liczysz od końca stringa i na sztywno ustawiłeś ilość znaków i jeżeli (a na pewno) adres będzie innej długości to zwróci ci jakieś smieci i kod się rozleci
w programowaniu musisz przewidywać różne możliwości

kombinuj kombinuj aż ci się uda w ten sposób się uczysz

PS. popraw coś w pierwszym poście w kodzie bo się strona rozjechała i ciężko się odpisuje
wstaw gdzie nie gdzie jakiegoś entera i przerzuć część kodu do nasępnej lini bo jest za długa
Odpowiedz
#6
No więc tak:

Dodałem kod który sprawdza poprawność wpisywanego adresu:

Kod PHP:
<?php //KOD SPRAWDZAJĄCY POPRAWNOŚĆ $nr_www
if (preg_match ('/^[0-9]+$/'$nr_www))
  echo (
'<font color="green"> www'.$nr_www.' OK</font>');
  else
  echo (
'<font color="red">Nie podałeś adresu, lub jest on niewłaściwy!</font>');
?>

Aha teraz jest jedno pole gdzie wpisuje się sam adres, skorzystałem z funkcji EXPLODE jak radziłeś:
Kod PHP:
<?php
$link
$_POST['link'];
$zippy_numer_pliku explode("/"$link);
$nr_www substr($link10, -36);
?>

$nr_www = substr($link, 10, -36); to tylko tymczasowo, dlaczego wartość ujemna? Otóż 10 omija mi "http://www" -36 licząć od tyłu wyrzuca zbędną część linku, od tyłu ponieważ wartość która występuje po www może być np 1, a w innym przypadku 55 , dlatego jest wartość ujemna, link z zippyshare zawsze ma tą samą długość więc to nie przeszkadza

Dodałem też przez funkcje ECHO podgląd, ogólnie ten kod co teraz jest zacząłem pisać zupełnie od nowa, i powiem szczerze że jestem bardzo zadowolony z wyników, mimo tego że informatyki w szkole nie miałem, wszystkiego uczyłem się sam w domu Wink

Dzięki za pomoc.
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Jak zrobic Formularz Kontaktowy na stronie ? Kodarth 191 255,838 06-04-2021, 16:25
Ostatni post: zerin
  Walidacja zdjęć + formularz harvester2001 6 5,972 24-03-2014, 19:01
Ostatni post: harvester2001
  php formularz - wszystkie pola muszą być wypełnione d3d3d3 2 3,636 01-10-2013, 14:16
Ostatni post: Kartofelek
  [PHP] Formularz mailowy - wysyłanie wiadomości spolprog 7 6,495 05-09-2013, 17:13
Ostatni post: Engine
  Pewny formularz and licznik JOzEk 1 2,346 04-05-2013, 14:35
Ostatni post: Engine

Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości
Sponsorzy i przyjaciele
SeoHost.pl