سوالف اندرويد




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الوسوم:

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو نشيط جدا
#1  
Talking سكربت اختصار الروابط من برمجتي

اسعد الله اوقاتكم بكل خير

زي ماهو واضح بالعنوان سكربت اختصار روابط مثال عليه :

http://azazah.net/index.php

تحميل سكربت ملف واحد انسخ :


كود PHP:
<?php
$params 
= array();
if ( !empty( 
$_POST ) )
{
    
$params array_merge$params$_POST );
}
if ( !empty( 
$_GET ) )
{
    
$params array_merge$params$_GET );
}
$url =  $params['url'];
if ( isset( 
$params['Go'] ) )
{
    
$domain 'http://'.$_SERVER['HTTP_HOST'];
    if ( !
$params['url'] )
    {
        
header("location: index.php");
    }
    else
    {
        
$folder =  generate_folder();
 
        while ( !
is_dir$folder ) )
        {
            
$folder =  generate_folder();
            
mkdir$folder0777 );
 
            
$file   $folder.'/index.php';
 
            
$handle fopen$file'w' );
 
            
$http = ( substr$_POST['url'], 0) != 'http://' 'http://'.$url :  $url );
 
            
fwrite$handle'<meta http-equiv="refresh" content="0;url='.$http.'" />' );
 
            
fclose$handle );
        }
        echo 
'copy your short link <input type="text" size="30" name="url[link]" value="'.$domain.'/'.$folder.'">';
 
        echo 
'<br />';
 
        echo 
'<a href="index.php">Go To Back</a>';
 
        exit;
    }
}
function 
generate_folder()
{
    
$result null;
 
    
$lowercase = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','q','r','s','t','u','v','x','y','z');
 
    
$uppercase = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','Q','R','S','T','U','V','X','Y','Z');
 
    for ( 
$i 0$i <= 2$i++ )
    {
        
$result .= $lowercase[rand0count$lowercase ) - )] . $uppercase[rand0count$uppercase ) -)];
    }
    return 
$result;
}
?>
<html><title>Short Url</title>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
short url <input type="text" name="url" size="30">
<input type="submit" name="Go" value="Go!">
</form></html>
ورفعه باسم index.php ،

وسلام عليكم






__________________
اكثر موضوع اضحكني في سوالف سوفت :

http://www.swalif.net/softs/swalif30/softs216357/
Abo Naiyf is offline   قديم 10-04-2010, 02:28 PM
الرد مع إقتباس
عضو فعال
#2  

وعليكم السلام ورحمة الله وبركاته


ما شاء الله عليك برمجة جميلة




لكن انا عملتها بطريقة اخرى:

الفكرة ان يتم الاستفادة من ال api لمواقع التقصير مثل tinyurl:

وبذلك لا حاجة لقواعد بيانات او انشاء ملفات(كنت ايضًا تستطيع استخدام قواعد sqlite)

هذه دالة مستقاة من دالة كان قد وضعها الاخ bruce

كود PHP:
function tiny($link){
    
$url = @file_get_contents("http://tinyurl.com/api-create.php?url={$link}");
    return 
$url;

وهي تاتي بالرابط المقصر من موقع tinyUrl

كيف يمكن الاستفادة منها:

نفرض اننا نريد تقصير الرابط التالي:

http://www.swalif.net/softs/

سوف نشغل الدالة وتعطي الناتج
http://tinyurl.com/23wnac
والرابط المقصر الخاص بموقعنا سوف يكون بالشكل التالي:
http://localhost/short/23wnac

هل فهمت العلاقة؟؟؟

نستخدم ملف htaccess لاعادة التحويل من موقعنا لموقع tinyurl

الذي سيأخدنا للرابط الذي تم تقصيره سابقًا بالطريقة التالية:
كود PHP:
RewriteEngine on
RewriteRule 
^([a-zA-Z0-9]+)$ http://tinyurl.com/$1 [R,L] 
الملف في المرفقات







آخر تعديل بواسطة ahmad sadiq في 12-05-2011 الساعة 01:17 AM.
ahmad sadiq is offline   قديم 10-04-2010, 06:07 PM
الرد مع إقتباس
عضو فعال
#3  

هذا هو الابداع
جزاكم الله خير






__________________
Tourism .Travel .Hotels
ea4nt.com is offline   قديم 10-04-2010, 06:42 PM
الرد مع إقتباس
عضو نشيط
#4  

جزاكم الله خيرا..............






هاوي برمجة is offline   قديم 10-04-2010, 09:48 PM
الرد مع إقتباس
عضو جديد
#5  

تسلم عزيزي جزاك الله خيرا






__________________
شركة سكال ويب

www.scalweb.com

الاتصال بنا : أضغط هنا .
Scalweb.Com is offline   قديم 11-04-2010, 03:24 AM
الرد مع إقتباس
عضو جديد
#6  

جزاك الله كل خير يالغالي ع المجهود الرائع






__________________
سبحان الله وبحمده
أبو غزوه is offline   قديم 11-04-2010, 06:38 AM
الرد مع إقتباس
لا إله إلا الله
#7  

جميل جدا ، فقط لا تصلح للمواقع الكبيرة و كثرة الزوار !!
كما قال الاخوة ممكن تحولها الى sqlite .






خالد الحضري is offline   قديم 11-04-2010, 07:25 AM
الرد مع إقتباس
عضو نشيط جدا
#8  

إقتباس:
المشاركة الأصلية بواسطة ahmad sadiq مشاهدة مشاركة
وعليكم السلام ورحمة الله وبركاته


ما شاء الله عليك برمجة جميلة




لكن انا عملتها بطريقة اخرى:

الفكرة ان يتم الاستفادة من ال api لمواقع التقصير مثل tinyurl:

وبذلك لا حاجة لقواعد بيانات او انشاء ملفات(كنت ايضًا تستطيع استخدام قواعد sqlite)

هذه دالة مستقاة من دالة كان قد وضعها الاخ bruce

كود PHP:
function tiny($link){
    
$url = @file_get_contents("http://tinyurl.com/api-create.php?url={$link}");
    return 
$url;

وهي تاتي بالرابط المقصر من موقع tinyUrl

كيف يمكن الاستفادة منها:

نفرض اننا نريد تقصير الرابط التالي:

http://www.swalif.net/softs/

سوف نشغل الدالة وتعطي الناتج
http://tinyurl.com/23wnac
والرابط المقصر الخاص بموقعنا سوف يكون بالشكل التالي:
http://localhost/short/23wnac

هل فهمت العلاقة؟؟؟

نستخدم ملف htaccess لاعادة التحويل من موقعنا لموقع tinyurl

الذي سيأخدنا للرابط الذي تم تقصيره سابقًا بالطريقة التالية:
كود PHP:
RewriteEngine on
RewriteRule 
^([a-zA-Z0-9]+)$ http://tinyurl.com/$1 [R,L] 
الملف في المرفقات
هلا والله احلى مافي الموضوع لا ااكواد ولا اسماء الفكره طريقتك حلوه بس تعتمد علي موقع tinyurl لو بكرا شال عفشه تتوهق

إقتباس:
المشاركة الأصلية بواسطة rifizm مشاهدة مشاركة
جميل جدا ، فقط لا تصلح للمواقع الكبيرة و كثرة الزوار !!
كما قال الاخوة ممكن تحولها الى sqlite .
ماتصلح للمواقع كبيره تقدر تقول محاوله يعني وبعدين عدلت بالكود اول كل رابط تقصير لازم يعمل له مجلد الحين غيرتها وهذه الي قدرنا عليه والمسئله مو القصد تركبون السكربت تجارب ما تعلمناه

هذه اخر تعديل

كود PHP:
<?php
$form 
= array('url'     =>  'text|30|put your link');
define('HTTP_HOST'$_SERVER['HTTP_HOST']);
define('DOMEN',  'http://'.HTTP_HOST);
define('PHP_SELF'$_SERVER['PHP_SELF']);
$params params();
function 
form$fields )
{
    
$form '';
    
$form .= '<form action='.PHP_SELF.' method="POST">';
    if ( 
is_array$fields ) )
    {
        foreach( 
$fields as $key => $value )
        {
            
$value explode('|'$value);
            
$form .= sprintf("%s <input type='%s' name='link[%s]' size='%s'>",
            
$value[2], $value[0], $key$value[1]);
        }
    }
    
$form .= '<input type="submit" name="go" value="Go!">';
    
$form .= '</form>';
    return 
$form;
}
function 
generate_folder()
{
    
$result null;
    
$lowercase = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','q','r','s','t','u','v','x','y','z');
    
$uppercase = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','Q','R','S','T','U','V','X','Y','Z');
    for ( 
$i 0$i <= 2$i++ )
    {
        
$result .= $lowercase[rand0count$lowercase ) - )] . $uppercase[rand0count$uppercase ) -)];
    }
    return 
$result;
}
function 
error_msg$vailed$params )
{
    
$errors = array('total_errors'  =>   1);
 
    foreach( 
$vailed as $filed => $vaileds )
    {
        if (!
preg_match$vaileds$params[$filed ]  ) )
        {
            
$errors['total_erros']++;
            
$errors[$filed] = true;
        }
    }
    if ( 
$errors['total_erros'] > )
    {
        return 
$errors;
    }
    else
    {
        return 
false;
    }
}
function 
params()
{
    
$params = array();
 
    if ( !empty( 
$_POST ) )
    {
        
$params array_merge$params$_POST );
    }
    if ( !empty( 
$_GET ) )
    {
        
$params array_merge$params$_GET );
    }
    return 
$params;
}
function 
check_url()
{
    if ( !
$params['url'] )
    {
        return 
false;
    }
    else
    {
        return 
true;
    }
}
function 
create_file()
{
    if ( 
check_url )
    {
        
$folder =  generate_folder();
 
        if ( !
check_field() )
        {
            
write$folder );
        }
        else
        {
            print 
'error your link';
            echo 
'<a href="index.php">Go To Back</a>';
            exit();
        }
        echo 
'copy your short link <input type="text" size="30" name="url[link]" value="'.DOMEN.'/'.$folder.'.html"><br />';
 
        echo 
'<a href="index.php">Go To Back</a>';
    }
    else
    {
        
header("location: test.php");
    }
}
function 
write$folder )
{
    global 
$params;
    
$file   $folder.'.html';
    
$handle fopen$file'w' );
    
$http = ( substr$params['url'], 0) != 'http://' 'http://'.$params['link']['url'] :  $params['link']['url'] );
    
fwrite$handle'<meta http-equiv="refresh" content="0;url='.$http.'" />' );
    
fclose$handle );
}
function 
check_field()
{
    
$regex "((https?|ftp)\:\/\/)?"// SCHEME
    
$regex .= "([a-z0-9+!*(),;?&=\$_.-]+(\:[a-z0-9+!*(),;?&=\$_.-]+)?@)?"// User and Pass
    
$regex .= "([a-z0-9-.]*)\.([a-z]{2,3})"// Host or IP
    
$regex .= "(\:[0-9]{2,5})?"// Port
    
$regex .= "(\/([a-z0-9+\$_-]\.?)+)*\/?"// Path
    
$regex .= "(\?[a-z+&\$_.-][a-z0-9;:@&%=+\/\$_.-]*)?"// GET Query
    
$regex .= "(#[a-z_.-][a-z0-9+\$_.-]*)?"// Anchor
    
global $params;
    
$links = array('url'    =>    "/^$regex$/");
    
$urls  = array('url'    =>    $params['link']['url']);
    return 
error_msg$links$urls );
}
if ( isset( 
$params['go'] ) )
{
    
//print_r( $params['link']);
    
create_file();
}
else
{
    echo 
form$form );
}
 
?>






__________________
اكثر موضوع اضحكني في سوالف سوفت :

http://www.swalif.net/softs/swalif30/softs216357/

آخر تعديل بواسطة Abo Naiyf في 11-04-2010 الساعة 03:21 PM.
Abo Naiyf is offline   قديم 11-04-2010, 03:20 PM
الرد مع إقتباس
عضو نشيط جدا
#9  

فكرة بسيطة وحلوة ..

تسلم كثير






__________________
لا اله الا الله . . . محمّد رســول الله
Ayman Jo is offline   قديم 11-04-2010, 03:24 PM
الرد مع إقتباس
لا إله إلا الله
#10  

إقتباس:
المشاركة الأصلية بواسطة Abo Naiyf مشاهدة مشاركة
ماتصلح للمواقع كبيره تقدر تقول محاوله يعني وبعدين عدلت بالكود اول كل رابط تقصير لازم يعمل له مجلد الحين غيرتها وهذه الي قدرنا عليه والمسئله مو القصد تركبون السكربت تجارب ما تعلمناه
نعم أخي العزيز ، قصدي الطريقة و ليس السكربت ،

ملاحظة :

يمكنك جعل الدالة مثل هذه أو شيئ مشابه لتلافي تكرار أسماء الملفات ،
كود PHP:
function generate_folder()
{
    
$result null;
    
$lowercase = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','q','r','s','t','u','v','x','y','z');
    
$uppercase = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','Q','R','S','T','U','V','X','Y','Z');
    for ( 
$i 0$i <= 2$i++ )
    {
        
$result .= $lowercase[rand0count$lowercase ) - )] . $uppercase[rand0count$uppercase ) -)];
    }
        if (
is_file$dir $result ".html")){ // $dir هو مسار مجلد السكربت
                
return generate_folder();
        }else{
                return 
$result;
        }

طبعا يمكن اعتبار الموضوع مرجع للدوال المستخدمة فيه ،

شكرا لك .






خالد الحضري is offline   قديم 11-04-2010, 04:18 PM
الرد مع إقتباس
الرد على الموضوع



أدوات الموضوع

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

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
برمجتي ، سكربت إختصار و حماية الروابط بنكهة خاصة ، الروابط لن تعمل من خارج موقعك . خالد الحضري الويب والويب 2.0 والـ Semantic Web 33 20-11-2009 02:37 PM
سكربت اختصار الروابط و حفظها الإصدر 1.1. ff5006 الويب والويب 2.0 والـ Semantic Web 11 14-06-2009 06:28 PM
تحميل سكربت اختصار الروابط sangam الويب والويب 2.0 والـ Semantic Web 7 28-04-2009 03:32 PM
سكربت المستخدم في 1tools ( تبع ماي ايجي ) سكربت اختصار الروابط الفرجاني الويب والويب 2.0 والـ Semantic Web 8 26-11-2008 02:39 PM
سكربت روابط 1 - برمجة عربية ( سكربت اختصار و حماية الروابط) حمل نسختك الان Amman-DJ الويب والويب 2.0 والـ Semantic Web 14 31-05-2008 12:33 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 04:24 PM.