صفحه 1 از 5 12345 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 49

موضوع: معرفی توابع و کلاس های کاربردی php

  1. #1
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض معرفی توابع و کلاس های کاربردی php

    سلام
    توی این تاپیک قصد داریم توابع ( Function ) های کاربردی زبان برنامه نویسی PHP رو معرفی کنیم ...
    قصدمون اینه که بیشتر توابعی که معرفی کنیم برای مدیران سرور کاربردی باشه . مثلا توابعی که برای ساخت کنسول های مدیریت سرور و ... استفاده میشه

    تابع چک کردن up یا down پورت یک آی پی - مثلا 127.0.0.1:80
    اولین تابعی که به ذهنم میرسه fsockopen هست
    خوب ساختار تابع به این صورت هستش :
    کد PHP:
    fsockopen string $hostname [, int $port = -[, int &$errno [, string &$errstr [, float $timeout ini_get("default_socket_timeout") ]]]] ) 
    که :

    کد PHP:
    fsockopen("www.example.com"80$errno$errstr30); 
    - متغیر اولی ip یا hostname
    - متغیر دومی port
    - متغیر سومی و چهارمی کاری بهش نداریم
    - متغیر پنجمی هم مدت زمان تعیین شده برای نمایش timeout


    مثال :
    کد PHP:
    $fsp fsockopen("www.example.com"80$errno$errstr45); if (!$fsp) {echo 'Down'; } else { echo 'up'; } 
    منتظر پست های بعدی شما هستم
    به دلیل مشغله کاری زیاد نمیتونم برسم . شرمنده ...
    ویرایش توسط amirlord : January 16th, 2012 در ساعت 13:23

  2. تعداد تشکر ها ازamirlord به دلیل پست مفید


  3. # ADS




     

  4. #2
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع کاربردی php

    سلامی دوباره
    خوب امروز یه نگاه سریع به شیوه اتصال به SSH2 توسط PHP داریم .
    برای ارتباط با پورت SSH سرور از ساختار تابع زیر استفاده میکنیم :
    کد PHP:
    ssh2_connect string $host [, int $port 22 [, array $methods [, array $callbacks ]]] ) 
    که :
    کد PHP:
    ssh2_connect('shell.example.com'22); 
    خوب برای اتصال با یک یوزر خاص نیز از تابع زیر استفاده میکنیم :
    کد PHP:
    ssh2_auth_password resource $session string $username string $password 
    که :
    کد PHP:
    ssh2_auth_password($test'username''password'); 
    تابع ssh2_connect رو توی یه متغیر مثلا test قرار میدیم و در تابع ssh2_auth_password متغیر اولی رو همون متغیر کانکنت سرور که test بود رو قرار میدیم .

    مثال :

    کد:
    $test = ssh2_connect('127.0.0.1', 22);
    ssh2_auth_password($test, 'username', 'password');
    خوب تا به اینجا به سرور متصل شدیم و الان نوبت این رسیده که از تابع ssh2_exec برای ارسال دستورات ( CMD ) استفاده کنیم ...
    ساختار تابع :
    کد PHP:
    ssh2_exec resource $session string $command [, string $pty [, array $env [, int $width 80 [, int $height 25 [, int $width_height_type SSH2_TERM_UNIT_CHARS ]]]]] ) 
    از متغیر دوم میتونید برای CMD های خودتون استفاده کنید. ( که میتونید داخل Array نیز قرار بدید )
    مثال :
    کد:
    $test = ssh2_connect('127.0.0.1', 22);
    ssh2_auth_password($test, 'username', 'password');
    $raminfo = ssh2_exec($test, 'cat /proc/meminfo');
    تشریح :
    خط 1 : از تابع ssh2_connect برای اتصال به سرور استفاده کردیم .
    خط 2 : از تابع ssh2_auth_password برای اتصال به ssh با یک یوزر خاص استفاده کردیم .
    خط 3 : با استفاده از تابع ssh2_exec برای ارسال دستورات استفاده کردیم . ( داخل متغیر قرار گرفته ! )

    امیدوارم مفید واقع شده باشه . فعلا

  5. تعداد تشکر ها ازamirlord به دلیل پست مفید


  6. #3
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام ! :|
    بعد از معرفی 2 تابع بریم یه کلاس معرفی کنیم .
    کلاس WHM XML API که توسط آقای آرش همت نوشته شده . این کلاس 11 تا تابع داره که به بررسی آن ها خواهیم پرداخت ...
    لینک : WHM XML API (CPanel API, change password, whm api, upgrade, accounts) - PHP Classes
    فایل کلاس رو نیز پیوست کردم براتون ...
    لیست توابع :

    کد:
    - version()- gethostname()
    - listaccts ()
    - listPkgs()
    - createAccount($acctDomain,$acctUser,$acctPass,$acctPackg)
    - accountsummary($accUser)
    - passwd($accUser,$pass)
    - suspend($acctUser,$reason)
    - unsuspend($acctUser)
    - terminate($acctUser,$keepDns=0)
    - changepackage($accUser,$pkg)
    فراخوانی فایل کلاس :
    کد PHP:
    require_once('whm.php'); 
    شروع کلاس :
    کد PHP:
    $test= new whm
    برای اتصال به سرور cPanel :
    کد PHP:
    $test->init('whmhost.com','whm_username','whm_hash'); 
    تابع version
    خوب از اسمش معلومه که ورژن cPanel رو خروجی میده .
    مثال :
    کد:
    $version= $test->version();
    echo $version;

    تابع gethostname :
    این تابع هاست نیم سرور رو خروجی میده .
    مثال :
    کد:
    $gethostname= $test->gethostname();
    echo $gethostname;
    تابع listPkgs :
    این تابع لیست پکیج هارو نمایش میده .
    مثال :
    کد PHP:
    $listPkgs$test->listPkgs(); 

    تابع createAccount
    مهمترین تابع این کلاس با ارسال 4 متغیر اکانت رو میسازه .
    - متغیر acctDomain : نام دومین اکانت بدون www
    - متغیر acctUser : نام کاربری اکانت
    - متغیر acctPass : رمز کاربری اکانت
    - متغیر acctPackg : نام پکیج مورد نظر
    تابع :
    کد PHP:
    $createAccount$test->createAccount($acctDomain,$acctUser,$acctPass,$acctPackg); 
    مثال :
    کد PHP:
    $result=$test->createAccount('testdomain.com','testuser','testpassword123','package_test'); 
    تابع accountsummary :
    اینو تست نکردم ولی فکر کنم مشخصات یا فضای کاربر رو نشون میده .
    - متغیر accUser : نام کاربری قربانی !
    مثال :
    کد PHP:
    $accountsummary$test->accountsummary($accUser); 


    تابع passwd :
    رمز عبور اکانت رو تغییر میده . دو متغیر داره .
    - متغیر accUser : نام کاربری !
    - متغیر pass : رمز جدید که میخواید بذارید .
    مثال :
    کد PHP:
    $passwd$test->passwd($accUser,$pass); 

    تابع suspend :
    ساسپند کردن اکانت x_X و 2 متغیر داره .
    - متغیر acctUser
    - متغیر reason
    مثال :
    کد PHP:
    $suspend$test->suspend($acctUser,$reason); 

    تابع unsuspend :
    آن ساسپند کردن اکانت . یک فروند متغیر دارد !
    - متغیر acctUser
    مثال :
    کد PHP:
    $unsuspend$test->unsuspend($acctUser); 

    تابع terminate :
    ترمینیت کردن x_X :-SS ( از بیخ پاک کردن اکانت ) دو عدد متغیر .
    - متغیر acctUser
    - متغیر keepDns که بذارید روی 0 تا DNS هاش رو هم پاک کنه !
    کد PHP:
    $terminate $test->terminate($acctUser,$keepDns=0); 

    تابع changepackage :
    تغییر پکیج اکانت . دو متغیر داره .
    - متغیر accUser
    - متغیر pkg
    مثال :
    کد PHP:
    $changepackage $test->changepackage($accUser,$pkg); 

    یک مثال کلی که توی پیج کلاس بود :


    کد:
    <?php //include the whm class file. 
    require_once('whm.php'); 
    
    
    // create a new instance of whm class 
    $test= new whm; 
    
    
    //initilize the whm object  
    //you can use you hostname or an IP below  
    //you can find you whm hash when yopu login into your whm account clickong on "Setup Remote Access Key" link. 
    $test->init('whmhost.com','whm_username','whm_hash'); 
    
    
    //This will output the cpanel/whm version.   
    $version= $test->version(); 
    echo "Cpanel/whm version is: $version <br>"; 
    
    
    //This way you can create an account.  
    //This function will return a result set as an array in success and will return false on fail. 
    $result=$test->createAccount('testdomain.com','testuser','testpassword123','package_test'); 
    
    
    //check if creating account was successfull or not. 
    if($result) 
    { 
        //print the result set 
        print_r($result); 
    } 
    else 
    { 
        //You can get the errors like this. 
        print_r($test->errors); 
    } 
    
    
    ?>
    خسته شدم دیگه
    امیدوارم تونسته باشم کمکی بهتون کرده باشم . با تشکر از همگی که وقتتون رو گذاشتید .

    خدانگهدار / امیر
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط amirlord : January 16th, 2012 در ساعت 23:30

  7. تعداد تشکر ها ازamirlord به دلیل پست مفید


  8. #4
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام
    یه تابع به نظرم رسیده که خیلی کاربردی و جالب هست به نام preg_match . بیشترین استفاده این تابع تکه تکه کردن یک متغیر هست . فرض میکنیم ما از طریق cURL یا هرچیزی دیگری سورس یه سایتی رو مساوی یه متغیر قرار دادیم و حالا میخوایم از اون سورس فقط یه جدول نمایش پیدا کنه !!!

    ساختار تابع :
    کد PHP:
    preg_match string $pattern string $subject [, array &$matches [, int $flags [, int $offset ]]] ) 
    PHP: preg_match - Manual
    خوب با مثال میریم جلو . با این اوضاع دلار x_X مثلا میخوایم جدول قیمت ارز ها در بازار تهران رو بذاریم توی سایتمون ( مثلا از سایت Mesghal.Com:�قيمت روز و لحظه ای طلا،سکه،نقره ، مس �و ار&#1 ) خوب اولش میگیم اگر بخوایم iframe بذاریم خیلی ضایع میشه که !! PHP برای این که شما ضایع نشید یه فکری کرده

    سورس سایتش رو مساوی یه متغیر قرار میدیم : ( با استفاده از تابع file_get_contents )
    کد PHP:
    $source file_get_contents("http://www.mesghal.com"); 
    نوبت به جای حساس رسیده که بخواید از طریق تابع preg_mtach جدول مورد نظرمون رو جدا کنیم
    خوب برای این کار باید با HTML آشنایی داشته باشید تا بتونید تگ تیبل یا هرچیزی رو که بخواید در بیارید .

    میشه :

    کد PHP:
    preg_match('/<table border="1" width="500" cellspacing="4" cellpadding="2" bgcolor="#FFFFCC" bordercolor="#FFFF00" id="table7">.*?<\/[\s]*table>/s'$source$matches); 
    کد زیر تگ استارت جدول هست :
    کد:
    <table border="1" width="500" cellspacing="4" cellpadding="2" bgcolor="#FFFFCC" bordercolor="#FFFF00" id="table7">
    و در نهایت تگ پایان هم به اون صورتی که در مثال بالا نوشته شده می نویسیم .

    خوب حالا نوبت این رسیده که خروجی رو چاپ کنیم .
    متغیر زیر خروجی preg_match ما هست :
    کد PHP:
    $matches['0'
    که با استفاده از دستور echo قابل نمایش است .
    کد PHP:
    echo $matches['0']; 

    حالا کلش :
    کد:
    <?php
    $source = file_get_contents("http://www.mesghal.com");
    preg_match('/<table border="1" width="500" cellspacing="4" cellpadding="2" bgcolor="#FFFFCC" bordercolor="#FFFF00" id="table7">.*?<\/[\s]*table>/s', $source, $matches);
    echo $matches['0'];
    ?>
    اجرا کردن این 2 تابعی که معرفی شد نیازی به تغییرات در PHP.ini ندارد .
    در ضمن کد هایی که برای نمونه در این تاپپیک قرار می گیرد تست شده و هیچگونه مشکلی ندارند ...
    موفق باشید / امیر

  9. تعداد تشکر ها ازamirlord به دلیل پست مفید


  10. #5
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام
    با این که خیلی خوابم میاد و فردا ساعت 5 باید بیدار بشم سعی کردم چشمانم رو باز نگهدارم تا یه تابع ساده و کوچیک رو معرفی کنم
    امروز قراره تابع copy رو معرفی و بررسی کنیم .
    این تابع کارش اینه که یه فایل رو کپی میکنه و یه جا دیگه پیست میکنه :دی

    ساختار تابع :
    کد PHP:
    copy string $source string $dest [, resource $context ] ) 
    دو دستگاه متغیر داره !
    - متغیر source که از نوع string بوده و نشان دهنده فایل مبدا ( فایلی که میخوایم copy بشه ) هست . ( لینک داخلی یا خارجی فرقی نداره )
    - متغیر dest از نو string که محل و نام ذخیره فایل copy شده رو مشخص میکنه .

    مثال :
    کد PHP:
    echo copy("http://www.google.com/amir.zip","hossein.zip"); 
    در بالا می بینین که تابع متغیر اول رو دانلود میکنه و به نام فایل hossein.zip ذخیره میکنه .
    اگر تابع با موفقیت اجرا شد خروجی 1 میده .

    موفق باشید / امیر

  11. تعداد تشکر ها ازamirlord به دلیل پست مفید


  12. #6
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام
    کم کم دارم دلسرد میشم !
    امشب با کمک تابع هایی که در گذشته معرفی کردیم یک تابع می نویسیم که شماره کاربری در وب هاستینگ تاک رو می گیره و امضاش رو نشون میده !
    اول تابع رو تعریف میکنیم
    کد:
    function signature($userid) {
    
    // Code haye Function :D
    
    
    }
    خوب یه دونه متغیر به نام userid تعریف کردیم داخلش .
    حالا میریم سراغ توی فانکشن !
    خوب حالا از تابع file_get_contents که قبلا معرفی کرده بودیم سورس صفحه اون کاربر رو در میاریم تا بتونیم قسمت امضاش رو ببریم و چاپ کنیم .
    کد PHP:
    $source file_get_contents("http://www.webhostingtalk.ir/member/".$userid); 
    توی وب هاستینگ تاک لینک صفحه کاربر به این صورت میشه که اول http : //www.webhostingtalk.ir/ member/ میاد و بعدش شماره کاربر قرار می گیره .
    با اون "." دوتا متغیر رو در هم آمیختیم !
    خوب حالا سورس رو در اوردیم نوبت رسیده به تابع preg_match که قسمت امضا رو ببره !

    تیبل امضای کاربر از تگ زیر شروع میشه :
    کد:
    <div class="blockbody subsection userprof_content userprof_content_border">
    و در اولین
    کد:
    </div>
    ـی که دیده شد کد هارو Cut میزنه !
    حالا داریم :
    کد PHP:
    preg_match('/<div class="blockbody subsection userprof_content userprof_content_border">.*?<\/[\s]*div>/s'$source$matches); 
    و خروجی رو چاپ میکنیم :
    کد PHP:
    echo $matches['0']; 
    حالا تابع رو کامل نوشتیم .

    تابع به صورت کلی شده :
    کد:
    function signature($userid) {$source = file_get_contents("http://www.webhostingtalk.ir/member/".$userid);
    preg_match('/<div class="blockbody subsection userprof_content userprof_content_border">.*?<\/[\s]*div>/s', $source, $matches);
    echo $matches['0'];
    }
    حالا میتونیم تابع رو بدین صورت فراخوانی کنیم :
    کد PHP:
    signature(9985); 
    در اینجا 9985 شماره کاربری من هست و شما با این کد میتونید امضای من رو در بیارید .

    اگر وقت اجازه داد انشالله چند تا از این تابع های کاربردی برای ویبولتین رو به صورت کلاس در میارم و منتشر میکنم ( قول نمیدم ) .

    امیدوارم در تمام لحظات زندگی کد بنویسید !
    با تشکر / امیر

  13. تعداد تشکر ها ازamirlord به دلیل پست مفید


  14. #7
    عضو انجمن
    تاریخ عضویت
    Nov 2011
    نوشته ها
    257
    تشکر تشکر کرده 
    57
    تشکر تشکر شده 
    364
    تشکر شده در
    260 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    با تشکر از امیرحسین عزیز ،

    براي چنين کارايي برنامه نويسها سراغ Regular Expression ميرند در حاليکه PHP براي اين کار تابعی داره که با راحتی هرچه تمامتر حتي fragment يا hash آدرس رو هم ميده.

    تابع parse_url در حالت استاندارد يک URL ميگيره و آرايه اي حاوي اجزاي آدرس ميده شامل اين قسمتها:

    • scheme: همون http يا https يا ftp و غيره
    • host: دامنه اصلي مثل Boplo.ir
    • port: پورت اگر باشه
    • user: همون username اگر باشه
    • pass: رمز يا password اگر ست شده باشه
    • path: مسير آدرس بعد از دامين
    • query: کوئري يعني کاراکترهاي بعد از علامت "?"
    • fragment: يا hash يا کاراکترهايي که بعد از علامت "#" ميان

    براي نمونه همون مثالي که خود PHP مطرح کرده:

    کد PHP:
    $url 'http://username:password@hostname/path?arg=value#anchor';  
    print_r(parse_url($url));  
    /** 
     *  Output: 
     *  Array 
     *  ( 
     *      [scheme] => http 
     *      [host] => hostname 
     *      [user] => username 
     *      [pass] => password 
     *      [path] => /path 
     *      [query] => arg=value 
     *      [fragment] => anchor 
     *  ) 
     */ 
    نکته مهم اين تابع اينه وقتي بجاي URL چرنديات تحويلش بديم، مقدار FALSE برميگردونه که ما بايد چک کنيم ولي بخاطر اينکه بيخود وقتش رو گرفتيم، يک خطاي E_WARNING هم صادر ميکنه که اگر نمايش اين دسته خطاها فعال باشه، خطا ميگيرم که مي تونيم اين مشکل رو با @ حل کنيم:

    کد PHP:
        if( $url = @parse_url("chetoty googooli?") ) {  
            echo 
    "Host: " $url['host'];  
        } else {  
            echo 
    "Invalid URL entered!";  
        } 
    از نسخه 5.1.2 به اين تابع يک پارامتر دوم اضافه شده که ميشه باهاش بجاي اينکه آرايه بگيريم، فقط بخش مورد نظر رو بصورت String بگيريم. مثلا اگر ميخوايم فقط کوئري آدرس رو بگيريم پارامتر دوم رو برابر PHP_URL_QUERY قرار ميديم. نمونه:

    کد PHP:
        $url "http://amir.ir/?loveBoplo=absolutely&loveAmirHossein=dige_poroo_nasho  
        echo parse_url(
    $url, PHP_URL_QUERY);  
        /** 
         *  Output: 
         *  loveBoplo=absolutely&loveAmirHossein=dige_poroo_nasho 
         */ 
    واسه اينکه موضوع کامل بشه، وقتي به کوئري يک تابع نياز داريم، معمولا اينکه مقدار هر کليد در اون کوئري چيه به درد ميخوره. پردازش کوئري کار خيلي ساده ايه ولي براي همون کار ساده ي چند خطي هم تابعي وجود داره به نام parse_str. مثلا براي پردازش کوئري مثال قبل، اينجوري لذت ميبريم:

    کد PHP:
        $url "http://amir.ir/?loveBoplo=absolutely&loveAmirHossein=dige_poroo_nasho  
        
    $query = parse_url($url, PHP_URL_QUERY);  
        parse_str(
    $query$array);  
        print_r(
    $array);  
        /** 
         *  Output: 
         *  Array 
         *  ( 
         *      [loveBoplo] => absolutely 
         *      [loveAmirHossein] => dige_poroo_nasho 
         *  ) 
         */ 

  15. تعداد تشکر ها ازMihanTech به دلیل پست مفید


  16. #8
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام .
    تاپیک 4 روز خوابش برد !
    شاید دوست داشته باشید از طریق PHP کامند بفرستید و نتیجه رو خروجی بدید !
    خوب یه تابعی هست به نام shell_exec که دقیقا این کار میکنه !
    کد PHP:
    shell_exec string $cmd 
    PHP: shell_exec - Manual
    فقط یک متغیر از نوع string داره .

    مثالی که خود PHP زده :
    کد:
    <?php$output = shell_exec('ls -lart');
    echo "<pre>$output</pre>";
    ?>
    این یکی از تابع هایی هست که در Shell ها استفاده میشد و الان میشه گفت در بیشتر سرور ها این تابع بسته شده و الکی فکر شیطانی نکنید
    امروز بحثمون کوتاه بود :دی
    موفق باشید ...

  17. تعداد تشکر ها ازamirlord به دلیل پست مفید


  18. #9
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام
    امروز با استفاده از سایت OnlineCurrency - قیمت لحظه ای طلا سکه ارز فلزات یک تابع می نویسیم که تیبل چند ارز مهم و قیمت سکه روز رو نشون میده .
    سورس ما اینجاست : OnlineCurrency - قیمت لحظه‌ای طلا سکه ارز فلزات
    مثل پست های قبلی عمل میکنیم .

    یه تابع میسازیم با دو متغیر به نام site و link
    کد:
    function arz($site ,$link) {
    
    // HaHa :D
    
    
    }
    خوب حالا سورس صفحه رو میریزیم داخل یه متغیر :
    کد PHP:
    $source file_get_contents("http://onlinecurrency.ir/widget/widget.php"); 
    از تابع preg_match برای بریدن استفاده میکنیم :
    کد PHP:
    preg_match('/<div class="main">.*?<\/[\s]*div>/s'$source$matches); 
    ---
    خوب یه تابعی هم که امروز میخوایم معرفی کنیم str_replace هست .
    ساختار تابع str_replace
    کد PHP:
    str_replace(find,replace,string,count
    متغیر find : از اسمش معلومه . به این متغیر داده هایی که قراره برامون جستجو کنه رو میدیم .
    متغیر replace : داده هایی که قراره برامون به جای اون داده های find قرار بده .
    متغیر string : متنی که میخوایم داخلش این عمل رو انجام بدیم .
    متغیر count : توی اینجا یه متغیر میذاریم توش که نتیجه بازگشتی اون تعداد ریپلیست ها هست .
    ---

    خوب ما وقتی سورسمون رو چاپ کنیم میخوایم اسم
    Powered by:
    Online Currency به اسم سایت خودمون تغییر داده بشه ! ()
    خوب اینجا باید دو بار عمل replace رو انجام بدیم . پس میایم دوتا متغیر رو میریزم داخل یه آرایه ( Array ) .

    اینجا متغیر find مساوی آرایه قرار دادیم :
    کد PHP:
    $find = array("Online Currency","http://onlinecurrency.ir"); 
    اینجا هم متغیر replace :
    کد PHP:
    $replace = array($site ,$link); 
    حالا تابع رو فراخوانی میکنیم :
    کد PHP:
    print_r(str_replace($find,$replace,$matches['0'])); 
    خوب اینجا Array هایی که بهش دادیم میره به ترتیب Find و Replace میکنه .


    حالا تابعی که نوشتیم رو میتونیم اینجوری فراخوانی کنیم :
    کد:
    arz("XMoney" ,"http://www.xmoney.ir/");
    اگر متوجه نشدید فایل رو ران کنید و کارکردش رو ببینید .

    یه سری کد css هم داشت :
    کد:
    body,p,table,form,h1,h2,h3 {margin:0; padding:0}body {font-family:tahoma; font-size:8pt}
    a {color:#000; text-decoration:none}
    a:hover {color:#666; text-decoration:underline}
    .main {width:200px; padding:5px; background:#F4F4F4; border:1px solid #444}
    table {direction:rtl}
    td {padding:5px; text-align:center}
    .top {text-align:center; background:#EEE; color:#555; font-weight:bold; border:1px solid #ddd}
    حالا یه Sample :

    کد:
    <?php
    function arz($site ,$link) {
    $source = file_get_contents("http://onlinecurrency.ir/widget/widget.php");
    preg_match('/<div class="main">.*?<\/[\s]*div>/s', $source, $matches);
    $find = array("Online Currency","http://onlinecurrency.ir");
    $replace = array($site ,$link);
    print_r(str_replace($find,$replace,$matches['0']));
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test !</title>
    <style type="text/css">
    body,p,table,form,h1,h2,h3 {margin:0; padding:0}
    body {font-family:tahoma; font-size:8pt}
    a {color:#000; text-decoration:none}
    a:hover {color:#666; text-decoration:underline}
    .main {width:200px; padding:5px; background:#F4F4F4; border:1px solid #444}
    table {direction:rtl}
    td {padding:5px; text-align:center}
    .top {text-align:center; background:#EEE; color:#555; font-weight:bold; border:1px solid #ddd}
    </style>
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-352924-23']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
    </head>
    <body>
    <?php
    arz("Google" ,"http://www.xmoney.ir/");
    echo '</div>';
    ?>
    </body>
    </html>

    موفق باشید / امیر

  19. تعداد تشکر ها ازamirlord به دلیل پست مفید


  20. #10
    عضو انجمن amirlord آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    802
    تشکر تشکر کرده 
    1,304
    تشکر تشکر شده 
    2,008
    تشکر شده در
    1,149 پست

    پیش فرض پاسخ : معرفی توابع و کلاس های کاربردی php

    سلام
    این همه برنامه نویس توی این انجمن . دوستان همراهی نمیکنید هاااا :دی
    امروز قصد معرفی کلاس Snoopy رو دارم :دی
    خوب این یک Class برای cURL هست . پس قبل از اجرای این کلاس باید تابع cURL در PHP.ini رو فعال کرده باشید ...
    این کلاس خیلی قدرتمند هست و متاسفانه منبع آموزشی خوبی براش نیست .

    از اینجا میتونید دانلود کنید :
    Snoopy | Free Development software downloads at SourceForge.net

    خوب بریم سراغ کارمون .
    در فایلی که داریم می نویسم فایل کلاس Snoopy رو فراخوانی میکنیم :
    کد PHP:
    include "Snoopy.class.php"
    کلاس رو استارت میزنیم :
    کد PHP:
    $snoopy = new Snoopy
    خوب این کلاس تابع زیاد داره برای همین فعلا یک تابع اون که کاربرد بیشتری رو داره معرفی میکنیم .
    خوب اول با یه مثال ساده شروع میکنیم .
    فرض کنید یک پیجی داریم به نام test.com/login.php
    حالا ما میخوایم با cURL فرم این صفحه رو پر کنه و لوگین کنه و بعد بدون این که خروجی بده به صفحه test.com/list.php بره و سورس این صفحه رو خروجی بده .
    خوب اینجا بهترین حالت اینه که از Snoopy استفاده کنیم

    تابع submit سه تا متغیر داره .
    URI
    formvars
    formfiles
    کاری که ما میخوایم انجام بدیم با دو متغیر URI و formvars هست .

    بریم سراغ کدها .
    بعد از این که کلاس رو استارت زدیم باید متغیر هارو تعریف کنیم .

    متغیر لینک فرم :
    کد PHP:
    $submit_url "test.com/login.php"

    چون چند تا فیلد داریم باید بریزیمشون داخل Array

    فرض کن فرم ورود سه تا فیلد داره . یکی username یکی password و یکی هم که submit ( در مواقعی که value submit در فروم فراخوانی میشه حتما متغیر submit باید تعریف بشه )
    کد:
    $submit_vars["username"] = "AmirLord";$submit_vars["username"] = "929292";
    $submit_vars["Submit"] = "Login";
    آرایه ی submit_vars که متغیر ها داخلش تعریف شدن .
    بریم سراغ تابع submit

    برای این که باکلاس باشیم تابع شرطی if هم میذاریم تنگش که در صورت نیاز error رو خروجی بدیم .

    شروع می نماییم :
    کد PHP:
    if($snoopy->submit($submit_url,$submit_vars)) 
    خوب اگر if اوکی بود سورس صفحه خروجی که مساوی متغیر result هست رو چاپ میکنیم .
    کد PHP:
    echo $snoopy->results
    و else که باید ارور رو خروجی بده متغیر error رو چاپ میکنیم :
    کد PHP:
    echo "error fetching document: ".$snoopy->error."\n"

    خوب تموم شد .
    یک نمای کلی :

    کد:
    <?php    include "Snoopy.class.php";
    $snoopy = new Snoopy;
        $submit_url = "test.com/login.php";
    $submit_vars["username"] = "AmirLord";
        $submit_vars["username"] = "929292";
    $submit_vars["Submit"] = "Login";
    	if($snoopy->submit($submit_url,$submit_vars))
    { echo $snoopy->results;	
        } else {
    echo "error fetching document: ".$snoopy->error."\n"; }
    ?>
    موفق باشید / امیر

  21. تعداد تشکر ها ازamirlord به دلیل پست مفید


صفحه 1 از 5 12345 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. درخواست افزونه پیش فاکتور و فاکتور وردپرس
    توسط Jai در انجمن درخواست انواع ماژول،پلاگین،قالب،امکانات سفارشی
    پاسخ ها: 2
    آخرين نوشته: February 13th, 2017, 10:36
  2. پاسخ ها: 21
    آخرين نوشته: June 11th, 2016, 12:59
  3. پاسخ ها: 0
    آخرين نوشته: December 26th, 2015, 11:40
  4. توجه توجه .نویسندگی سایت های جور وا جور .توجه توجه
    توسط ko9ol30 در انجمن به دنبال کار هستم
    پاسخ ها: 0
    آخرين نوشته: June 20th, 2015, 12:21
  5. درخواست سرور مجازی ویندوز برای تورنت و تورنت دادن و گرفتن
    توسط Daniel4u در انجمن درخواست سرور مجازی
    پاسخ ها: 9
    آخرين نوشته: September 21st, 2012, 11:24

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •