ساخت rss خوان هوشمند تحت وب

.:: Ali ::.

Member
سلام به دوستان .

مي خواستم يه صفحه واسه خودم درست كنم كه فيد چند تا از سايت هاي مورد علاقه ام رو توش وارد كنم كه با هر بار رجوع به صفحه به روز ترين سايت تو سطح بالاتري قرار بگيره (حالا اگه با اژكس باشه كه خود به خود رفرش بشه چه بهتر)

آيا همچين اسكريپتي به صورت پايه وجود داره كه بتونم روش كار كنم و گسترشش بدم ؟ اگر نه مي خواستم نظرتون رو بدونم تا تو نوشتنش رويه ي درستي رو پيش بگيرم .

ممنونم .
 

.:: Ali ::.

Member
ممنون ؛ اما اين فيد ها مجزا هستن ؛ يعني من مي خوام آخرين تيتر (يا آخرين مطلب) از بين 5 تا فيد نمايش داده بشه . همه فيد ها در يك مجموعه ي واحد .

به عبارت ديگه ؛ من آرايه اي از چندين url feed دارم ؛ كه اينها مي بايست خونده بشن و به ترتيب آخرين به روز رساني به صورت ليست مرتب شن . حالا اين ليست ممكنه فقط شامل title يا description و يا توامان با هم و با pubDate باشه .
 
آخرین ویرایش:

.:: Ali ::.

Member
يه جور ديگه (؟!)

بسيار خوب ؛ مثل اينكه كسي جوابي براي اين سوال نداره (!) اين سوال رو به شكلي ديگه مي پرسم .

آيا اسكريپتي وجود داره كه چندين فيد رو بگيره و يك فيد تبديل كنه ؟ يا اگه نه چطور بايد اين برنامه رو نوشت ؟ (كمك براي طراحي و آلگوريتم)

مثلا" صفحه ي feedgen.php كه 2 تا آدرس مثلا" u1rl.xm و url2.xml رو بگيره و به صورت url3.xml كه يك فيد جديد و متشكل از 2 فيد قبلي هست خروجي بده .

ممنون .
 
آخرین ویرایش:

siavashmusic

Active Member
من متوجه نشدم ؟! فیدها مجزا هستند؟
خوب این سیستمی که معرفی کردم دقیقا :
من مي خوام آخرين تيتر (يا آخرين مطلب) از بين 5 تا فيد نمايش داده بشه . همه فيد ها در يك مجموعه ي واحد .
درخواست شما رو انجام میده و براساس آخرین بروزرسانی چیده شده
مسله دسته بندی و نوع خروجی هم بستگی داره چه کدی تعریف کرده باشی
امیر اگه بیاد خیلی خوب میتونه توضیح بده چون سیستم رو خودش نوشته و تسلط بیشتری روی این مقوله داره

بسيار خوب ؛ مثل اينكه كسي جوابي براي اين سوال نداره (!)

!!
چند روزه مجید آنلاین نیومدی؟
 

.:: Ali ::.

Member
نوع خروجي معمولا" يكسانه و تفاوتش در تگ هاي xml هستش كه با تجزيه و تحليل كننده (genfeed.php) مي شه يك نواختش كرد ؛ مسئله طريقه ي صحيح به قولي مرج كردن فيد ها هستش .

حالا اين آقا امير رو كجا مي شه پيداش كرد ؟ آي ديش تو انجمن چيه ؟

منظور از "چند روزه مجید آنلاین نیومدی؟" با توجه به نقل و قول (؟!) رو متوجه نشدم ؛ اما خوب بعد از 4 روز تو اين انجمن فعال و جواب نگرفتن مي تونه معنيش اين باشه كه كه دوستان ؛ مثل خودم ؛ راه حلي ندارن ! در حين دنبال كردن اين بحث به نحوي جاهاي ديگه دنبالشم كه اگه راه حل اصولي پيدا كنم (مثل سوال قبل) خودم روش كار رو تو همين تاپيك شرح مي دم .

و به طور كلي هميشه دورادور سر مي زنم و بعضا" تاپيك ها رو دنبال مي كنم :)

با تشكر .
 

siavashmusic

Active Member
چند روزی هست انجمن در انتقال روی یه سرور جدید هست و تقریبا دسترسی توی حالت معلق هست واسه هیمن نمیشه ورود کرد
امروز انتقال تموم شد و تازه وارد بخش شدیم

امیر ادیش Shahkey.com هست
 

yakoza

Well-Known Member
حالا که شما قبرو شکافتی منم یه توضیح کوچیک بدم

برای سورت کردن آرایه منم یه راهنمایی میکنم این کدی که نوشتم برای سورت کردن rss هستش بر اساس title . pubdate

PHP:
<?php
class collection
{

   
	function add($arr)
    {
        $this->dataSet= $arr;
    }
   
    //The wrapper sort function
    function sortDataSet($s)
    {
        //Sort by the given parameter
        switch($s)
        {
            case "title":
                //Note use of array to reference member method of this object in callback
                uasort($this->dataSet,array($this,"cmpTitle"));
                break;
           
            case "pubdate":
                uasort($this->dataSet,array($this,"cmpdate"));
                break;     
        }
    }

    //Callback function for sorting by name
    //$a and $b are dataItem objects
    function cmpTitle($a,$b)
    {
        //Use sort() for simple alphabetical comparison
        //Convert to lowercase to ensure consistent behaviour
        $sortable = array(strtolower($a->name),strtolower($b->name));
        $sorted = $sortable;
        sort($sorted);   
       
        //If the names have switched position, return -1. Otherwise, return 1.
        return ($sorted[0] == $sortable[0]) ? -1 : 1;
    }
   
    //Callback function for sorting by x
    //$a and $b are dataItem objects
    function cmpdate($a,$b)
    {
        //Use sort() for simple alphabetical comparison
        //Convert to lowercase to ensure consistent behaviour
        $sortable = array(strtolower($a->x),strtolower($b->x));
        $sorted = $sortable;
        sort($sorted);   
       
        //If the names have switched position, return -1. Otherwise, return 1.
        return ($sorted[0] == $sortable[0]) ? -1 : 1;
    }

}

//Create a collection object
$myCollection = new collection();

   $dataSet = array(
    array(
    	'title'=>"salam",
    	'pubdate'=>"12/5/1386",
    	),
    	array(
    	'title'=>"aleyk",
    	'pubdate'=>"13/5/1386",    	
		)
	);
	
	$myCollection->add($dataSet);


echo "<pre>";
//Sort by title
$myCollection->sortDataSet("title");
echo "بر اساس تایتل سورت میکنه<br>";
print_r($myCollection->dataSet);

//Sort by pubdate
$myCollection->sortDataSet("pubdate");
echo "بر اساس تاریخ سورت میکنه<br>";
print_r($myCollection->dataSet);


?>
 

جدیدترین ارسال ها

بالا