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

Regular Expressions Fehler?

ineedmusic

Neues Mitglied
Hallo.
Ich fürhre mit cURL einen Remote Upload zu Directupload.net durch. Das funktioniert soweit auch, das herraussuchen des Hotlinks mittels Regular Expressions scheitert allerdings. Ich hofffe mir kann hier jemand sagen wo mein Fehler liegt.

PHP:
<?php
function r_upload_img($url)
{
$post_data['image_link'] = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.directupload.net/index.php?mode=upload");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response=curl_exec($ch);
preg_match("oder verwende den werbefreien.*?value='(.*?)'  onClick/s", $response, $uploaded);
curl_close($ch);
return ($uploaded[1]);
}

$img="http://www.pk-nord.de/assets/img/a_plus.gif";
$img_url=r_upload_img($img);
echo $img_url;
?>

Der Original Code von Directupload.net sieht wie folgt aus:
HTML:
oder verwende den werbefreien <font style="color:#EA079C;">Hotlink:</font></h2> <input type="text" class="textfield" style="margin-bottom: 20px; float: left; border: 1px solid #717171; padding: 0.25em 0.6em 0.2em; font-size: 15px; height: 20px; width: 465px;" value='http://s1.directupload.net/images/130324/eyaypnuw.jpg'  onClick
Das escapen der ' habe ich schon probiert, hat aber nicht geholfen. Hat irgentwer eine Idee was daran falsch ist?
MfG Music!
 
Eigentlich musst du den Regex im String nochmal mit z.B. /.../ umschließen
Dafür habe ich die "()".
Dann muss an den Anfang einfach noch ein "/".
Perfekt, jetzt funktioniert es. :) Vielen Dank!!

Falls jemand mal ein Remote Uploader für Directupload.net braucht:
PHP:
<?php
function r_upload_img($url)
{
$post_data['image_link'] = $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.directupload.net/index.php?mode=upload");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response=curl_exec($ch);
preg_match("/oder verwende den werbefreien.*?value='(.*?)'  onClick/s", $response, $uploaded);
curl_close($ch);
return ($uploaded[1]);
}
?>
Ich denke das Script ist selbsterklärend. :)
 
Zurück
Oben