Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Odseparowanie części linka
Forum PHP.pl > Forum > Przedszkole
kosior11
Witam!

W jaki sposób mogę odseparować konkretną część linka, np. mam link: www.xxxx.pl/abcdef=xyz Z tego linka chciałbym zawsze pobierać do bazy danych część oznaczoną jako xyz.

Jak to zapisać?

Pozdrawiam
Aqu
Wyrażenia regularna albo np. tak:
  1. $link = 'www.xxxx.pl/abcdef=xyz';
  2. $usun = 'www.xxxx.pl/abcdef=';
  3. $zapisz = str_replace($usun, '', $link);
  4.  
sobol6803
A to link z Twojej strony? Czy zatem link nie powinien wyglądać tak - www.xxxx.pl/?abcdef=xyz ? Jak tak, to wystarczy pobrać geta:

  1. $abcdef=$_GET['abcdef'];


Wtedy zmienna $abcdef będzie zawierać "xyz". Możesz później z tym robić cokolwiek chcesz, m.in. wpisać do bazy.
kosior11
To nie ma być link mojej strony, tylko serwisu zewnętrznego.

Chciałbym, żeby to wyglądało następująco:

-Mam formularz dodający rekordy do bazy danych, w tym formularzu mam m.in miejsce na wklejenie linka zewnętrznego.
-Chciałbym dane i konkretną część linka zamieścić w bazie danych

Nie wiem jak ma wyglądać plik upload, żeby prawidłowo wgrywał określoną część linka (linki z youtube, więc struktura praktycznie zawsze będzie podobna: http://www.youtube.com/watch?v=... chce pobierać to co wykropkowane), w tej chwili mam coś takiego, co dodaje mi cały link:

  1. <?php
  2. include ("connect.php");
  3. if($_SERVER['REQUEST_METHOD'] == 'POST')
  4. {
  5. $query = mysql_query("insert into linki values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."','".$_POST['link']."','".$_POST['rodzaj']."')");
  6. } ?>
Monter08
a nie łatwiej:
  1. <?php
  2. $link = 'www.xxxx.pl/abcdef=xyz';
  3. $parsurl = parse_url($link);
  4. parse_str($parsurl['path'], $getvar );
  5. print_r($getvar);
  6. ?>
kosior11
A mógłbyś opisać, o co tu chodzi?

Już załapałem mniej więcej, ale nie wiem jak umieścić poniższy kod w zmiennej $bodies.

  1. $url = 'http://www.youtube.com/watch?v=ZDXDw8y1lDU&feature=topvideos'; / jak pobierać do zmiennej url linki z bazy danych
  2. $parsurl = parse_url($url);
  3. parse_str($parsurl['query'], $ytvar );
  4. echo $ytvar['v'];


  1. <?php
  2. include("connect.php");
  3.  
  4. $query = "(SELECT id,tytul,data,autor,tresc,link,rodzaj,thumb FROM link) ORDER BY data DESC";
  5. $result = mysql_query ($query);
  6. while ($row = mysql_fetch_array($result))
  7.  
  8. {$bodies .= '
  9. <a href="strona_1.php?id='.$row[0].'">
  10. <li class="company">
  11. <div class="title">'.$row[1].'</div>
  12. / jak umieścić echo $ytvar['v'] wewnątrz zmiennej $bodies, żeby było: www.xxxx.pl/abcdef=echo $ytvar['v']
  13. </li></a>';
  14.  
  15. } echo '<ul>'.$bodies.'</ul>';
  16.  
  17. ?>
Monter08
nie bardzo rozumiem o co Ci chodzi, bo raczej nie to:
  1. <?php
  2.  
  3. include("connect.php");
  4.  
  5.  
  6.  
  7. $query = "(SELECT id,tytul,data,autor,tresc,link,rodzaj,thumb FROM link) ORDER BY data DESC";
  8.  
  9. $result = mysql_query ($query);
  10.  
  11. while ($row = mysql_fetch_array($result))
  12.  
  13.  
  14.  
  15. {$bodies .= '
  16.  
  17. <a href="strona_1.php?id='.$row[0].'">
  18.  
  19. <li class="company">
  20.  
  21. <div class="title">'.$row[1].'</div>
  22. <a href="www.xxxx.pl/abcdef='.$ytvar['v'].'">Link</a>
  23. </li></a>';
  24.  
  25.  
  26.  
  27. } echo '<ul>'.$bodies.'</ul>';
  28.  
  29.  
  30.  
  31. ?>

btw, ładowanie najpierw danych do zmiennej a następnie je wypluwanie jest przecież kompletnie bezsensu, marnujesz tylko głupio pamięć.
kosior11
  1. $url = 'http://www.youtube.com/watch?v=ZDXDw8y1lDU&feature=topvideos';
  2. $parsurl = parse_url($url);
  3. parse_str($parsurl['query'], $ytvar );
  4. echo $ytvar['v'];


W tym przypadku url jest stały = 'http://www.youtube.com/watch?v=ZDXDw8y1lDU&feature=topvideos', w moim przypadku zmienna url będzie zawsze inna, bo wyświetlam rekordy w pętli a każdy wpis w bazie danych będzie zawierał inny link. Nie wiem jak zmiennej url nadawać linki z bazy danych.
Monter08
  1. <?php
  2. include("connect.php");
  3. $query = "(SELECT id,tytul,data,autor,tresc,link,rodzaj,thumb FROM link) ORDER BY data DESC";
  4. $result = mysql_query ($query);
  5. function yturl_parse($link)
  6. {
  7. $parsurl = parse_url($link);
  8. parse_str($parsurl['query'], $ytvar );
  9. return $ytvar['v'];
  10. }
  11.  
  12. while ($row = mysql_fetch_array($result)){
  13. $bodies .= '
  14.  
  15. <a href="strona_1.php?id='.$row[0].'">
  16.  
  17. <li class="company">
  18.  
  19. <div class="title">'.$row[1].'</div>
  20. <a href="www.xxxx.pl/abcdef='.yturl_parse($row[numerekzbazy]).'">Link</a>
  21. </li></a>';
  22. } echo '<ul>'.$bodies.'</ul>';
  23.  
  24.  
  25.  
  26. ?>

ale jak już Ci mówiłem nie ładuj tego w zmienną bo jest to mało wydajne i jeżeli linki są trzymane w bazie to nie lepiej by było pobieranie ich "Youtubowego id" podczas dodawania? Tak to tylko raz musisz ją przejechać.

d3ut3r
@Monter08 miał raczej na myśli, że chyba lepiej zapisać cały link w bazie, bo tak pobierasz cały link od usera, usuwasz cześć tego linku resztę zapisujesz w bazie a później z tej reszty odtwarzasz link który wcześniej user wprowadził smile.gif
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.