General / Allgemeines > Programming

Übergabe von Containerlinks (Name)

(1/2) > >>

.Infecto:
Hallo zusammen,

da ich komplette Bilderpakete angebe, habe ich versucht mittels der Bildereinstellung direkt die Container anzugeben und den Bildername direkt mit dem Name des Containers zu überschreiben.

Ich habe folgendes getan.

Ich habe in der admin/images.php eingetragen unter:
                    if (!empty($additional_image_fields)) {
                        $table_fields = $site_db->get_table_fields(IMAGES_TABLE);
                        foreach ($additional_image_fields as $key => $val) {
                            
                            if (isset($HTTP_POST_VARS[$key.'_'.$i]) && isset($table_fields[$key])) {
                                $additional_field_sql .= ", $key";
                                $additional_value_sql .= ", '".un_htmlspecialchars(trim($HTTP_POST_VARS[$key.'_'.$i]))."'";
                            }

                        }

                    }

Das hier:
                    // Sharelinkz START
                    $sharelinksdl = str_replace('http://share-links.biz/_', '', $image_download_url);
                    $re1='.*?'; # Non-greedy match on filler
                    $re2='('.$sharelinksdl.')'; # Alphanum 1
if (preg_match_all ("/".$re1.$re2."/is", $image_download_url)) {
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, "http://share-links.biz/api/status");
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                    $data = array(    
'apikey' => '2ed183155346a56a',      // Der API-Key, den man als reg. User bekommt 
                    'folderCodes' => $sharelinksdl,   // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
                    );
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                    $rueckgabe = explode(';', curl_exec($ch));
                    curl_close($ch);
                    $sl_name = $rueckgabe[1];
    } else {
$sl_name = $image_name;
}
// Sharelinkz ENDE

Und $image_name mit $sl_name ausgetauscht:
                    $sql = "INSERT INTO ".IMAGES_TABLE."
                (cat_id, user_id, image_name, image_description, image_keywords, image_date, image_active, image_media_file, image_thumb_file, image_download_url, image_allow_comments".$additional_field_sql.")
                VALUES
                ($cat_id, $user_id, '$sl_name', '$image_description', '$image_keywords', $current_time, $image_active, '$new_name', '$new_thumb_name', '$image_download_url', $image_allow_comments".$additional_value_sql.")";

Das klappt auch wunderbar. Da ich aber verschiedene Container-Dienste nutze, habe ich noch folgendes hinzugefügt:

                    $ncdl = str_replace('http://ncrypt.in/folder-', '', $image_download_url);
                    $re1x='.*?'; # Non-greedy match on filler
                    $re2x='('.$ncdl.')'; # Alphanum 1
if (preg_match_all ("/".$re1x.$re2x."/is", $image_download_url)) {
curl_setopt($ch, CURLOPT_URL, "http://ncrypt.in/api_status.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
$data = array(
    'link' => 'http://ncrypt.in/folder-'.$ncdl,
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$rueckgabe = explode(';', curl_exec($ch));
curl_close($ch); 
 
                    $sl_name = $rueckgabe[4];
    } else {
$sl_name = $image_name;
}

Jetzt übergibt er den Name nicht mehr. Ich muss mich entscheiden ob ich NCrypt oder Share-Linkz nutze.
Ich möchte erreichen, dass das System automatisch erkennt ob es sich um share-linkz oder ncrypt handelt.
Der Dontainerlink wird als
$image_download_url = trim($HTTP_POST_VARS['image_download_url_'.$i]);
Genutzt.

Kann mir jemand helfen?

Rembrandt:
Hi!

Soviel ich jetzt verstanden habe möchtest du, eine Download URL (im Upload Formular) als Bildnamen verwenden (den jeweiligen *zip Namen)?

Du könntest auch mit preg_match zuerst herausfinden ob in der Var "$image_download_url" das Wort "NCrypt" oder "Share-Linkz" enthalten ist und dann erst  zu einen deiner beiden Script
weiterleiten.

mfg Andi

.Infecto:
Das tuhe ich doch bereits oder?
Nur irgendwie beist sich die if-abfrage.

Wenn ich nur ein Script laufen lasse, dann übernimmt er die Daten, lasse sich beide ablaufen, spruckt er mir preg_mach fehler aus.
Als if-Abfrage, nutze ich das
if (preg_match_all ("/".$re1x.$re2x."/is", $image_download_url)) {

Rembrandt:
Also noch mal meine Frage, eine Download URL (im Upload Formular) als Bildnamen verwenden (den jeweiligen *zip Namen)?

.Infecto:
So ähnlich.

Es geht um den Ordnername: http://share-links.biz/_qu55men1z4bm
Anhand der API (Siehe Script)
API


Script
                    // Sharelinkz START
                    $sharelinksdl = str_replace('http://share-links.biz/_', '', $image_download_url);
                    $re1='.*?'; # Non-greedy match on filler
                    $re2='('.$sharelinksdl.')'; # Alphanum 1
if ($image_download_url == 'http://share-links.biz/_'.$sharelinksdl.')') {
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, "http://share-links.biz/api/status");
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                    $data = array(    
'apikey' => '2ed183155346a56a',      // Der API-Key, den man als reg. User bekommt 
                    'folderCodes' => $sharelinksdl,   // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
                    );
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                    $rueckgabe = explode(';', curl_exec($ch));
                    curl_close($ch);
                    $sl_name = $rueckgabe[1];
    } else {
$sl_name = $image_name;
    }
// Sharelinkz ENDE

NCrypt ist ähnlich augebaut. Nur 4images soll das erkennen ob es sich um ncrypt oder share-linkz handelt und entsprechend das richtige Script nutzen.

EDIT:
Mit dieser Variante scheint es bisher zu funktionieren. Aber ist das Codetechnisch ok?
                    // Sharelinkz START
                    $sharelinksdl = str_replace('http://share-links.biz/_', '', $image_download_url);
if ($image_download_url == 'http://share-links.biz/_'.$sharelinksdl.'') {
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, "http://share-links.biz/api/status");
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                    curl_setopt($ch, CURLOPT_POST, 1);
                    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                    $data = array(    
'apikey' => '2ed183155346a56a',      // Der API-Key, den man als reg. User bekommt 
                    'folderCodes' => $sharelinksdl,   // Code des Ordners (bspw. "_xxkhv4aw7s5qa")
                    );
                    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                    $rueckgabe = explode(';', curl_exec($ch));
                    curl_close($ch);
                    $sl_name = $rueckgabe[1];
echo "Kuchen";
    }
// Sharelinkz ENDE

                    $ncdl = str_replace('http://ncrypt.in/folder-', '', $image_download_url);
if ($image_download_url == 'http://ncrypt.in/folder-'.$ncdl.'') {
$chx = curl_init();
curl_setopt($chx, CURLOPT_URL, "http://ncrypt.in/api_status.php");
curl_setopt($chx, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($chx, CURLOPT_POST, 1); 
curl_setopt($chx, CURLOPT_FOLLOWLOCATION, 1); 
$datax = array(
    'link' => 'http://ncrypt.in/folder-'.$ncdl,
);
curl_setopt($chx, CURLOPT_POSTFIELDS, $datax); 
$rueckgabex = explode(';', curl_exec($chx));
curl_close($chx); 
 
                    $sl_name = $rueckgabex[4];
echo "Torte";
    }

Navigation

[0] Message Index

[#] Next page

Go to full version