حل مشكلة عدم السحب من موقع ويكيبيديا في سكربت سحب الملفات

آخر ظهور لمؤلف الموضوع قبل (1 ايام)
الحالة
مغلق و غير مفتوح للمزيد من الردود.

الساعه

عضو جديد
عضو كود نت
إنضم
27/04/2026
المشاركات
61
السلام عليكم
ابو حميد قمت بااغلاق الموضوع قبل ان اجد الحل النهاىي لمشكلة عدم السحب من موقع ويكيبيديا في هذا الموضوع
والحل هو جعل ترميز الملف utf-8 ويعمل الكود التالي بنجاح والكود هو
كود:
@header('Content-type: text/html;charset=utf-8');
PHP:
تضعه في اول ملف الرفع او بالتحديد السطر الثاني
وهذا الكود يعمل
او الافضل تضع الكود التالي بعد علامة <head>
ولا حاجة لوضع الكود اعلاه في الملف
HTML:
<meta charset="utf-8">
وهذا الكود المستخدم بعد تنقيحه
كود:
$context = stream_context_create
([ "http" => array(
            "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        ),
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false
    ]
]
);

وهكذا يستخدم
PHP:
$upload = file_put_contents("uploads/$name", file_get_contents($url,false, $context));

رابط لتجربة سحب صورة من ويكيبيديا
الصوره
مركز الرفع

ملاحظه لم ينجح السحب مع الترميز Windows-1256
 
السلام عليكم
ابو حميد قمت بااغلاق الموضوع قبل ان اجد الحل النهاىي لمشكلة عدم السحب من موقع ويكيبيديا في هذا الموضوع
والحل هو جعل ترميز الملف utf-8 ويعمل الكود التالي بنجاح والكود هو
كود:
@header('Content-type: text/html;charset=utf-8');
PHP:
تضعه في اول ملف الرفع او بالتحديد السطر الثاني
وهذا الكود يعمل
او الافضل تضع الكود التالي بعد علامة <head>
ولا حاجة لوضع الكود اعلاه في الملف
HTML:
<meta charset="utf-8">
وهذا الكود المستخدم بعد تنقيحه
كود:
$context = stream_context_create
([ "http" => array(
            "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        ),
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false
    ]
]
);

وهكذا يستخدم
PHP:
$upload = file_put_contents("uploads/$name", file_get_contents($url,false, $context));

رابط لتجربة سحب صورة من ويكيبيديا
الصوره
مركز الرفع

ملاحظه لم ينجح السحب مع الترميز Windows-1256
عذرًا لم انتبه الى المواضيع الجدد اسف على التأخير ..
جرب استخدم ترميز
فهوَ الحل الافضل والانسب اليك ويدعم اللغة العربية بمتياز الان ما المشكلة التي وقعت بها ؟

عدم سحب الملفات مرا اخرى عند تغير الترميز ، فمن الافضل البقاء على الترميز الذي يعمل بشكل ممتاز بدون مشاكل ..
ام اخطأ في الكود
وملاحظة صغيرة : ان وجد ملف logs للاخطأ سنحل المشكلة بشكل اسرع وافضل لانه يشخص لنا الخطأ الذي تعارض السكربت ..
 
السلام عليكم
ابو حميد
لا يوجد مشكلة الا انه لايدعم الترميز ويندوز ١٢٥٦
سوف اقوم بوضع كود تحويل الترميز الى utf-8
الذي جعلني اصر على الترميز Windows-1256 هو انه فعال مع خاصية البحث في هذا الملف
قمت بتحديد عدد حروف كلمة البحث ٣ حروف كحد ادنى يعني لو كتبت حرفين بظهر لك تنبيه
جرب اكتب كلمة لنا ثم ابحث وجرب اكتب كلمة لن ثم ابحث
 
السلام عليكم
ابو حميد
لا يوجد مشكلة الا انه لايدعم الترميز ويندوز ١٢٥٦
سوف اقوم بوضع كود تحويل الترميز الى utf-8
الذي جعلني اصر على الترميز Windows-1256 هو انه فعال مع خاصية البحث في هذا الملف
قمت بتحديد عدد حروف كلمة البحث ٣ حروف كحد ادنى يعني لو كتبت حرفين بظهر لك تنبيه
جرب اكتب كلمة لنا ثم ابحث وجرب اكتب كلمة لن ثم ابحث
اخي العزيز ..
الترميز ليس له علاقة في عدد الاحرف او الكلمات ، هوَ فقط يُحدد خاصية العمل ، واللغة المستخدم في السكربت .
 
فعلا سبيل المثال ، اريد ان ابحث عن كلمة (لن) فمايحدد ظهور الاشعار هوَ كود مخصص لعدم استقبال كلمة مكونة من حرفين يمكنك ان تمنح حقية البحث لكلمة مكونة من حرف واحد ايضًا فهذا لن يؤثر ، الترميز ليس له اي علاقة في عدد الحروف او تنبيهات ، فالمشكلة اي تقع عندما ارسلت لك الكود ، فانا مُتأكد انك قُمت بتغير الترميز ولذلك لم يعمل الكود لديك عند سحب الملفات .
 
السلام عليكم
ابوحميد
احسنت انا قمت بتغيير ترميز الملف من utf-8 الى Windows-1256
يبدوا انني سوف اجعل ترميز جميع الملفات utf-8
 
السلام عليكم
ابوحميد
احسنت انا قمت بتغيير ترميز الملف من utf-8 الى Windows-1256
يبدوا انني سوف اجعل ترميز جميع الملفات utf-8
نعم اجعل الترميز على utf-8 لاني بنيت لك الكود على هذا الترميز واضفت دوال جديدة بدل الدوال القديم .

تحياتي لك اخي وصديقي
ان كنـت تحتاج اي شيء اخر فلا تتردد ابدًا في طرحه هنا ، فنحن نسعى لخدمتك وتطوير المواقع العربية .

اخوك
مهدي حميد :)
 
اخي @الساعه
لماذا لا تحول منتداك على الزين فورو ، ارى انك لاتزال تستخدم vb ؟ فهـي سكربت من العصر الحجري .
 
السلام عليكم ابو حميد
سكربت vb له دعم واضافات كثيرة ونسخ الجيل الثالث اكثر طلبا نظرا لصغر حجمها واسهل بالاستخدام
 
السلام عليكم ابو حميد
سكربت vb له دعم واضافات كثيرة ونسخ الجيل الثالث اكثر طلبا نظرا لصغر حجمها واسهل بالاستخدام
صديقي حاليًا الزين فورو ، نسخة المنتديات الافضل على الاطلاق بدون منازع حسب تجربتي .. لكـل المُنتديات فالزين فورو انصحك ان تجربها .. من الاستايلات الجميلة المطوريين المتوفرين في كـل مكان ، سهولة التحكم اضافات كثيره لاتحصى فالان زين فورو متوفر فيها كُل شيء كـل ماتحتاجة موجود
 
السلام عليكم
ابو حميد
والله احترت فيه احيانا يسحب واحيانا مايسحب
يبدوا ان موقع ويكيبيديا محدد مرات سحب الملف لانه بعض المرات يخرج خطأ ترافيك راسل ايميل ويكيبيديا هذا الذي يظهر لي
Warning: : failed to open stream: HTTP request failed! HTTP/1.1 429 Too many requests. Please contact bot-traffic@wikimedia.org (fceb99d) in
/home​
لاكن يسحب كل الملفات في هذا السكربت ولا يظهر خطأ
والدالة المستخدمة فيه هي كما ذكرت
downloadImage($url)​
 
التعديل الأخير:
صديقي لا يوجد شيء اسمـة يعمل ثم يتوقف نحن ليس محرك سياره او ماشابه ،، اكواد وسيستم ، كيف يعمل طبيعي ثم يتوقف الان ماذا افعل هههههههههه .
 
فهذا تحذير يقول لك عدد الطلبات كثير ويفشل بسبب عدد مرات المحاولة الكثيرة ، واعتقد بان هناك سبب ايضاً على مايبدو ، موقعك خال من شهادة الامان فقد تكون مربط الفرس ؟.
 
السلام عليكم
ابو حميد
لماذا لا يعطي التحذير نفسه مع السكربت أعلاه
ولا مرة توقف او فشل في السحب
ابدا المشكلة تكمن في التكويد
حاولت ابرمج الكود الفعال لاكن يظهر لي مشكلة
Warning: file_get_contents() expects parameter 1 to be a valid path, string given in /home/xxx/domains/alshafeen.site/public_html/upok.php on line 90
 
السلام عليكم
ابو حميد
لماذا لا يعطي التحذير نفسه مع السكربت أعلاه
ولا مرة توقف او فشل في السحب
ابدا المشكلة تكمن في التكويد
حاولت ابرمج الكود الفعال لاكن يظهر لي مشكلة
Warning: file_get_contents() expects parameter 1 to be a valid path, string given in /home/xxx/domains/alshafeen.site/public_html/upok.php on line 90
الان اتضحت المشكلة صديقي ..
عندما يسحب السكربت من موقع عادي (حمايته ضعيفة)، ينجح file_get_contents. ولكن عندما تحاول السحب من موقع محمي أو يحتوي على تحويل روابط (مثل ويكيبيديا)، فإن الدالة تفشل وتعيد قيمة فارغة، أو يتداخل المتغير $content فيظهر لك هذا التحذير المزعج (Warning).
قم بفتح ملف upok.php واذهب إلى الجزء الخاص بـ if (!empty($remote_links)) واستبدله بالكامل بهذا الجزء المصحح والنظيف:
كود:
    // 2. معالجة السحب من الروابط (كافة المواقع بكفاءة عالية)
    $remote_links = array_filter([$_POST['url'], $_POST['urls']]);

    if (!empty($remote_links)) {
        echo "<h3>نتائج السحب من الروابط:</h3>";
        foreach ($_links = $remote_links as $current_link) {
            $current_link = trim($current_link); // تنظيف الرابط من الفراغات
            
            $path_info = pathinfo(parse_url($current_link, PHP_URL_PATH));
            $ext = isset($path_info['extension']) ? strtolower($path_info['extension']) : 'jpg';
            $password = trim($ext);

            if((strlen($password) > 4) or $ext=="" or $ext=="php") {
                $ppp = $_POST['ppp'];
                $ext = !empty($ppp) ? $ppp : 'jpg';
            }

            // حماية من السحب من موقعك الخاص
            $my_site = "alshafeen\.site";
            if (preg_match("/$my_site/i", $current_link)) {
                echo "Error: You cannot fetch files from your own domain ($current_link)<br>";
                continue;
            }

            $new_name = "fetch_" . time() . "_" . rand(100, 999) . "." . $ext;
            $target = $fileplace . "/" . $new_name;

            // التعديل الجوهري هنا: نستخدم دالة cURL ونمرر لها الرابط الصحيح مباشرة
            $content = downloadImage($current_link);

            if ($content) {
                if (file_put_contents($target, $content)) {
                    @watermark($target, $ext, 'logo/logo.png');
                    
                    // تأكد أن متغير الوقت $ss معرف في أعلى الـ POST كـ $ss = date('Y-m-d-h:i:s');
                    $log_data = "$description,$new_name,$ss,$ip\n";
                    $fh = fopen("./files/datte.txt", "a+");
                    fwrite($fh, $log_data);
                    fclose($fh);
                    
                    echo "✅ تم سحب: <a href='".$site_url.$target."' target='_blank'>$new_name</a> (الحجم: ".convertToReadableSize(strlen($content)).")<br>";
                }
            } else {
                echo "❌ فشل سحب الرابط: $current_link (تأكد من أنه رابط مباشر للملف أو أن الموقع لا يحظر السيرفر)<br>";
            }
        }
    }
تأكد أن الدالة downloadImage المعرفة في أعلى ملفك تبدو هكذا (حيث أضفنا لها سطرين لزيادة القدرة على تخطي الحجب):

كود:
function downloadImage($remote_links) {
    $ch = curl_init($remote_links);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // تتبع الروابط المحولة تلقائياً
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // تخطي مشاكل حماية الـ SSL
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20); // زيادة وقت الانتظار للمواقع البطيئة
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36");
    curl_setopt($ch, CURLOPT_REFERER, "https://www.google.com/"); // إيهام الموقع أن الطلب قادم من جوجل
    $data = curl_exec($ch);
    if(curl_errno($ch)){
        curl_close($ch);
        return false;
    }
    curl_close($ch);
    return $data;
}

جرب هذهِ الاضافات واخبرني بالنتيجة
 
فاعتقد ان هذا حد خبرتي في ترتيب السكربت فجربت لك كـل السبل الجديدة التي اعرفها :)
 
ان لم يعمل جرب دعم فني لمنتدى هيلبرنت ، او منتدى شقاوي او من هذهِ الاخوه الافاضل فاعتقد هناك سيحلون مشكلتك افضل مني بمراحل كثيرة .
 
السلام عليكم
ابو حميد
اسف على التأخير تطبيقي يحدث كل مره وصارت مشكلة
ركبت كود في احدى مشاركاتك في الموضوع السابق يعمل بدون مشكلة لاكن ماله ضمان فهو تحت التجربه
جرب
 
السلام عليكم
ابو حميد
اسف على التأخير تطبيقي يحدث كل مره وصارت مشكلة
ركبت كود في احدى مشاركاتك في الموضوع السابق يعمل بدون مشكلة لاكن ماله ضمان فهو تحت التجربه
جرب
صديقي انتَ جاي تخلط بين ختم ورفع الصور وبين سحب الملفات ..
هليمكنك ضغط السكربت ورفعه لي عبر ميديا فاير ، وساقوم بتثبيته شخصيًا وتعديل عليه ؟
 
لكن انتظرني 24 ساعة حتى اكمل من تعديله باكثر صورة ممتازة .
 
صديقي انتَ جاي تخلط بين ختم ورفع الصور وبين سحب الملفات ..
هليمكنك ضغط السكربت ورفعه لي عبر ميديا فاير ، وساقوم بتثبيته شخصيًا وتعديل عليه ؟
لتوفير هذهِ الخدمة يرجع مشاهدة هذا الموضوع ..
 
السلام عليكم
ابو حميد سؤال
لو جعلت ترميز الملفات utf-8 هل يبحث مظبوط يعني لو جعلت حرفين يظهر تنبيه الحروف قليلة او ان الترميز حروفه كثيرا قد جربته ولايظبط عدد حروف كلمة البحث
على العموم سوف احول ترميز الملفات الى utf-8 بما في ذلك ملف وصف الملف
 
السلام عليكم
ابو حميد سؤال
لو جعلت ترميز الملفات utf-8 هل يبحث مظبوط يعني لو جعلت حرفين يظهر تنبيه الحروف قليلة او ان الترميز حروفه كثيرا قد جربته ولايظبط عدد حروف كلمة البحث
على العموم سوف احول ترميز الملفات الى utf-8 بما في ذلك ملف وصف الملف
لا اعرف انتَ لماذا تكره ، ترميز utf-8 لا اعرف السبب ، ولماذا تغير الاكواد بنفسك ايضًا لا اعرف السبب فعلى العموم ، يمكنك مشاهدة اخر الردود ..

تحية طيبة لك
 
السلام عليكم
ابو حميد
فشل الان في سحب الملف
سوف اجرب الكود الاخير
 
ماشاء الله
ابو حميد
كودك الاخير مظبوط
لاكن يبغا له وقت تحت التجربه عدة محاولات سحب ملفات
 
السلام عليكم
ابو حميد مساء الخير
اذا كان رابط الصوره يحتوي ارقام هنديه مثلا ١٢٣ فانه لا ينقل الصوره بشكل صحيح قمت بتحويل الرابط من هذه الارقام الى ترميز utf-8 فلم ينقلها على هذا السكربت الاخير الذي وضعته ونقلها على سكربتي الاخر

الرابط الاصلي
بعد التحويل
سكربت تم نقل الصوره بترميز utf-8
السكربت الاخير لم ينقل الصوره بنجاح

طريقة تحويل الترميز هو نسخ الرابط الاصلي ووضعه في الواتسب رساله لنفسك ثم افتح الرابط بااي متصفح يحول ترميزها الى ترميز utf-8
 
السلام عليكم
ابو حميد
او بطريقة اسهل
انسخ الرابط الاصلي
وضعه في متصفح fiery للاندرويد ثم انقر انتر ثم ضع المؤشر على حقل الادخال او الرابط المدخل سيتغير الترميز الى utf-8 انسخه وضعه في حقل الرابط في سكربت سحب الملفات
 
الحالة
مغلق و غير مفتوح للمزيد من الردود.
عودة
أعلى أسفل