• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Teil eines Links herauslesen und in DB abspeichern

Status
Für weitere Antworten geschlossen.

Odo

Neues Mitglied
Hi Leute :)

ich möchte aus einem Link nur einen bestimmten Teil herauslesen und diesen Teil dann in meiner DB abspeichern. Nur wie funzt das ?

Hier ein Beispiel eines entsprechenden Links:
Code:
http://www.youtube.com/watch?v=rfvfTcGQUuk


Herauszufiltern wäre:

rfvfTcGQUuk

Das ganze wird in ein bereits existentes Formular eingefügt, dass mit abschicken die entsprechenden werte in die DB einträgt.

Hier der Teil aus dem script, der die Werte in die DB einträgt:

PHP:
<?php
if($sent == 1)
 {
  $my_host = "x";
  $my_dbname = "x";
  $my_user = "x";
  $my_pass = "x";
  $my_tablename = "x";

$datum = date("Y.m.d");
$uhrzeit = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
  $link = mysql_connect($my_host, $my_user, $my_pass);
  if (!$link)
    die("Kann den Server nicht erreichen.");
  if (!mysql_select_db($my_dbname, $link))
    die("Kann die Datenbank nicht anwählen.");
  $sql = "INSERT INTO $my_tablename (`location`, `poster`, `email`, `titel`, `datum`, `zeit`, `ip`)";
        $sql.= "VALUES ('$nachricht', '$name', '$email', '$betreff', '$datum', '$uhrzeit', '$ip')";
        $donesql = MYSQL_QUERY($sql);

  if($donesql) echo '<img src=".../images/ok.gif" border="0"><font face=arial size=2 color="#4F4F4F"><b>  Vielen Dank für Deine Nachricht! <a href=".../index1.php?page=1">Hier</a> gehts es wieder zur Startseite!';
  mysql_close($link);
    }

   else {
    ?>


Hier das entsprechende Ausgabefeld
HTML:
<tr>
<td width="150"><strong><font face=arial size=2 color="#4F4F4F">Link zum Video:<br>(Youtube/MyVideo/etc.)</font></strong></td>
<td><textarea name="nachricht" cols="40" rows="4" wrap="VIRTUAL" id="nachricht"><? echo $nachricht; ?></textarea></td></tr>



Beste Grüße

Odo
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
PHP:
<?php
$sql = "INSERT INTO table VALUES('', '".$_GET['v']."')";
?>

die GET-variable v enthält die kennung.

Nils aka XraYSoLo
 
Danke für deine schnelle Antwort!

Kannst du mir erklären wie ich das implementieren kann ?

Aso, ich habe gerade gesehen, dass du meinen Beitrag oben noch geändert hast?! war was nicht richtig?



Beste Grüße

Odo
 
Werbung:
Kannst du mir erklären wie ich das implementieren kann ?

ganz einfach:

eine GET-variable hat immer was mit der browserzeile zu tun. v= ist also die GET-variable v.
demnach:

PHP:
$_GET['v'] = 'rfvfTcGQUuk';

speicher' das in der datenbank mit

PHP:
<?php
$sql = "INSERT INTO table VALUES('', '".$_GET['v']."')";
?>

ab.

der aufruf sieht dann sinngemäß so aus:

PHP:
<?php
echo '<a href="http://www.youtube.com/watch?v='.$row['v'].'">';
?>

$row steht hier für ein array, in das die daten aus der DB gelesen werden, dazu gibts hier tutorials, ich lass' das mal zur vereinfachung weg.

dann können alle gespeicherten links mithilfe einer schleife hintereinander oder auf wunsch einzeln dargestellt werden.

PHP:
<?php
while($row = mysql_fetch_array($verbindungskennung))
   {
   echo '<a href="http://www.youtube.com/watch?v='.$row['v'].'">';
   }
?>

das wars schon. ist im grunde net schwer, nur das erste mal muss man eben etwas zeit mitbringen.

Aso, ich habe gerade gesehen, dass du meinen Beitrag oben noch geändert hast?! war was nicht richtig?

ich hab' nur die richtigen code-tags editiert, da es bei standard [noparse]
Code:
[/noparse] kein highlighting gibt.
ist vorteilhafter, denn der highlighter färbt falsch, sobald ein fehler da ist.

Nils aka XraYSoLo
 
Wie kann ich das hier

speicher' das in der datenbank mit

PHP:
<?php
$sql = "INSERT INTO table VALUES('', '".$_GET['v']."')";
?>
ab.


in mein script implementieren?



PHP:
<?php
if($sent == 1)
 {
  $my_host = "x";
  $my_dbname = "x";
  $my_user = "x";
  $my_pass = "martin";
  $my_tablename = "x";

$datum = date("Y.m.d");
$uhrzeit = date("H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
  $link = mysql_connect($my_host, $my_user, $my_pass);
  if (!$link)
    die("Kann den Server nicht erreichen.");
  if (!mysql_select_db($my_dbname, $link))
    die("Kann die Datenbank nicht anwählen.");
  $sql = "INSERT INTO $my_tablename (`location`, `poster`, `email`, `titel`, `datum`, `zeit`, `ip`)";
        $sql.= "VALUES ('$nachricht', '$name', '$email', '$betreff', '$datum', '$uhrzeit', '$ip')";
        $donesql = MYSQL_QUERY($sql);

  if($donesql) echo '<img src="http://www..../images/ok.gif" border="0"><font face=arial size=2 color="#4F4F4F"><b>  Vielen Dank für Deine Nachricht! <a href="/.../index1.php?page=1">Hier</a> gehts es wieder zur Startseite!';
  mysql_close($link);
    }

   else {
    ?>


Es muss ja in diese passage eingefügt werden:

PHP:
$sql = "INSERT INTO $my_tablename (`location`, `poster`, `email`, `titel`, `datum`, `zeit`, `ip`)";
        $sql.= "VALUES ('$nachricht', '$name', '$email', '$betreff', '$datum', '$uhrzeit', '$ip')";

Nur wie genau ist die frage ?!
 
wenn er den link
YouTube - Sido - Ein Teil Von Mir ( Unzensiert Uncut )
z.b. aus einem formular kriegt oder so will er daraus die zeichen dahinten auslesen... :p

$_GET['v'] will der nicht ;)

ich würde mal volgendes versuchen

/(http://www\.|http://|www\.)youtube\.com/watch\?v=([a-z,0-9]{11})/i

so sollte man es rausfiltern können...

oder noch ne schöne lösung, wenn der link immer so aussieht schreib einfach

PHP:
<?php

$link = 'http://www.youtube.com/watch?v=rfvfTcGQUuk';
$link = explode('=', $link);
$link = $link[1];

// jetzt speicherst du einfach die variable $link in der datenbank

// wenn dus mal ausprobieren willst dan entfernst du einfach die // ais der nächsten zeile

// echo $link;

?>

MFG
 
Werbung:
@ Slibbo: Da Youtube die Parameter mode und search benutzt, könnte das manchmal zu Problemen führen...

Die RegEx ist da schon besser...

Ne kleine Frage u der RegEx:
Sind bei der Youtube ID immer 11 Stellen?
 
wenn er den link

oder noch ne schöne lösung, wenn der link immer so aussieht schreib einfach

PHP:
<?php

$link = 'http://www.youtube.com/watch?v=rfvfTcGQUuk';
$link = explode('=', $link);
$link = $link[1];

// jetzt speicherst du einfach die variable $link in der datenbank

// wenn dus mal ausprobieren willst dan entfernst du einfach die // ais der nächsten zeile

// echo $link;

?>
MFG

Kannst du mir dazu noch kurz etwas erklären? Habe ich es richtig verstanden, dass man in das feld des formulars beispielsweise

HTML:
http://www.youtube.com/watch?v=AGeq6atIzNU

eingibt. Und dieser Teil wird mittels deines codes verworfen

Code:
http://www.youtube.com/watch?v=

und es wird ausschließlich

Code:
AGeq6atIzNU

in der DB gespeichert.


Hier also in die Spalte location bzw. $nachricht:
PHP:
$sql = "INSERT INTO $my_tablename (`location`, `poster`, `email`, `titel`, `datum`, `zeit`, `ip`)";
        $sql.= "VALUES ('$nachricht', '$name', '$email', '$betreff', '$datum', '$uhrzeit', '$ip')";


Soweit richtig ?
 
Werbung:
Ja genau das macht der Code !
Aber es gibt auch einen anderen link nämlich
z.B "http://youtube.com/watch?v=bPD6YiBFG1Q&mode=related&search="
Wenn jetzt der User den Code nur kopiert dann funktioniert der Script nicht
 
Du benutzt parse_url so wie ich es geschrieben hab, und explodest dann bei v=, dann haste den richtigen Teil.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben