เล่นเกมส์อัจฉริยะข้ามวันกันดีก่า (PHP Only)

เริ่มโดย EThaiZone, 26 เมษายน 2007, 16:09:38

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

EThaiZone

อ้างถึงจาก: ผู้ที่เคลียร์เกมส์ไปแล้วTee++;
ColdMoney
thai1
aomnaruk
tosakp

สงวนเฉพาะคนเป็น php นะจ๊ะ

รางวัล เว็บรวม rss ที่ผมค้นเจอ มีทั้งบทความ และเป็น podcast
ปั่น podcast ด้วย windows media เคยทำยัง เออ  :twisted:

ว่าแล้วเริ่มเกมส์กันเลย

เริ่มเกมส์ผมมีโค๊ดมาให้
เป็นทั้งโจทย์และคำตอบ (มันเป็น url เว็บคับ  :lol: )


http://www.ethaizone.com/game.txt

เกมส์นี้มีทั้งหมด 2 part

part 1

"พลับไม่อยากให้คนอื่นรู้จึงขอ 2
วิธีที่พลับใช้จึงเอาเลขที่รู้กันกับคุณไปยกกำลัง 6"

part 2

"จงหาความเหมือนแล้วกำจัดทิ้ง
เปลี่ยนมันเป็นสิ่งที่สื่อสารกัน
พลับไม่ต้องบอกคุณก็รู้"

และกระดาษที่พลับจดเอาไว้
&#___;

ขอให้สนุกกับเกมส์บ้าๆ ที่ผมจัดเล่นๆ นะครับ  :lol:

ใครได้ก็บอกว่าได้ อย่าใบ้กันนะ  :twisted:

Tee++;

[direct=http://laravel.in.th]Laravel in Thai[/direct]
[direct=http://jquerytips.com]jQueryTips by Tee++;[/direct]
[direct=https://www.facebook.com/jQueryTips]jQueryTips Page[/direct]
[direct=https://www.facebook.com/Laravel.in.th]Laravel in Thai Page[/direct]
[direct=https://twitter.com/Teepluss]Teepluss's Twitter[/direct]


EThaiZone

คุณ Tee++; เคลียร์เกมส์นี้ไปแล้ว

(ง่ายเนอะ)  :lol:

youcanberich

[direct=http://www.iheartpassiveincome.com/]อยากรู้ว่าผมทำเงินวันละ $1000 ได้ยังไง คลิ๊ก![/direct]
[direct=http://www.iheartpassiveincome.com/]ผมจะสอนให้คุณหารายได้แบบยั่งยืนบนโลกออนไลน์ รับประกันคุณทำได้แน่นอน[/direct]
[direct=http://www.iheartpassiveincome.com/]เหนื่อยกับการปั่นเว็บใช่มั้ย อยากทำเงินวันละ $100 และไม่ต้องลุ้นโดนแบนรายวัน ผมมีทางออกให้ คลิ๊กครับ![/direct]

ColdMoney

เข้าไปแล้วอ่ะครับ แต่ผมไม่ได้ใช้ RSS นี่ดิ เซ็งเลย เอาเป็นว่า ขอโค้ดที่เอา RSS มาสร้างเว็บแบบ auto เป็นรางวัลได้ป่ะครับ  :lol:  :lol:
[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

EThaiZone

<?php
/*
+--------------------------------------------------------------------------------+
| RSSReader
+--------------------------------------------------------------------------------+
|
| Description
| -> Reads a given RSS feed
|
| Features
| -> You can customize the initial opening tag by setting
| the $main_id var
| -> You can also customize which tags RSSReader will 
| recognize as sub tags by adding tags to the $sub_keys
|
| Usage&#58;
| $rss = new RSSReader&#40;"http&#58;//http&#58;//rss.news.yahoo.com/rss/topstories"&#41;;
| $rss->Read&#40;&#41;;
| // For complete feed array&#58;
| print_r&#40;$this->feed['array'&#93;&#41;;
| // For just the items&#58;
| print_r&#40;$this->feed['items'&#93;&#41;;
|
| OR
|
| $rss = new RSSReader&#40;&#41;;
| print_r&#40;$rss->Read&#40;"http&#58;//rss.news.yahoo.com/rss/topstories"&#41;&#41;;
|
| Author&#58; Matt Froese
| Contact&#58; [email protected]
| Version&#58;  1.0
| Last Updated&#58; July 14, 2005
|
+--------------------------------------------------------------------------------+
*/
class RSSReader &#123;

var $parser  '';
    var 
$file    '';
    var 
$current_tag '';
       
    var 
$main_id 'CHANNEL';
    var 
$sub_keys = array &#40;'IMAGE', 'ITEM'&#41;;    
    
    
var $feed  = array &#40; 'header' => '',
    
'items' => '' &#41;;
    
    
var $items              = array&#40;&#41;;
    
var $data  = array&#40;&#41;;
    
var $feed_data  = array&#40;&#41;;
    
    
var $errors  = array&#40;&#41;;
    
/*
+--------------------------------------------------------------------------------+
| RSSReader
+--------------------------------------------------------------------------------+
*/
    
function RSSReader&#40; $file = '' ,$encoding='UTF-8'&#41; &#123;
        
$this->file = &#40; $file == "" &#41; ? "" &#58; $file;
    
&#125;
    
/*
+--------------------------------------------------------------------------------+
| Read
+--------------------------------------------------------------------------------+
*/
    
function Read&#40; $file = '' &#41; &#123;    
       
$this->file = &#40; $file == "" &#41; ? $this->file &#58; $file;
        
if&#40; preg_match&#40;"/^http&#58;\/\/&#40;[^\/&#93;+&#41;&#40;.*&#41;$/", $this->file, $matches&#41; &#41; &#123;

            
$host  $matches[1&#93;;
            
$uri  $matches[2&#93;;

            
$request "GET " $uri " HTTP/1.0\r\n";
            
$request .= "Host&#58; " $host "\r\n";
            
$request .= "Connection&#58; close\r\n\r\n";

            if&
#40; $http = fsockopen&#40;$host, 80, $errno, $errstr, 5&#41; &#41; &#123;
                
fwrite&#40;$http, $request&#41;;
                
$timeout time&#40;&#41; + 5;
                
                
$response "";
                while&
#40;time&#40;&#41; < $timeout && !feof&#40;$http&#41;&#41; &#123;
                    
$response .= fgets&#40;$http, 4096&#41;;
                
&#125;
                
list&#40;$header, $xml&#41; = preg_split&#40;"/\r?\n\r?\n/", $response, 2&#41;;
                
if&#40; preg_match&#40;"/^HTTP\/[0-9\.&#93;+\s+&#40;\d+&#41;\s+/", $header, $matches&#41; &#41;&#123;
                    
$status $matches[1&#93;;
                    
if&#40; $status == 200 &#41; &#123;
                        
$this->parser xml_parser_create&#40;$encoding&#41;;
                        
xml_set_object&#40;$this->parser, $this&#41;;
                        
xml_set_element_handler&#40;$this->parser, "startElement", "endElement"&#41;;
                        
xml_set_character_data_handler&#40;$this->parser, "characterData"&#41;;
                        
xml_parse&#40;$this->parser, trim&#40;$xml&#41;&#41;;
                    
&#125; else &#123;
                        
$this->errors[&#93; = "Cannot retrieve feed&#58; HTTP returned <b>" . $status . "</b>.";
                    
&#125;
                
&#125; else &#123;
                    
$this->errors[&#93; = "Cannot get status from header.";
                
&#125;
            
&#125; else &#123;
               
$this->errors[&#93; = "Cannot connect to <b>" . $host .  "</b>.";
            
&#125;
        
&#125; else &#123;
            
$this->errors[&#93; = "Invalid file &#40;" . $this->file . "&#41;.";
        
&#125;
$this->feed['array'&#93;  = $this->feed_data;
$this->feed['items'&#93; = $this->feed_data['ITEM'&#93;;
        
return $this->feed['array'&#93;;
    
&#125;
    
/*
+--------------------------------------------------------------------------------+
| startElement
+--------------------------------------------------------------------------------+
*/
    
function startElement&#40;$parser, $name, $attrs&#41; &#123;
        
$this->current_tag $name;
    

        if&
#40; $this->current_tag == $this->main_id &#41; &#123;
            
$this->inside_tag$this->main_id &#93; = true;
    
&#125;
    
foreach&#40; $this->sub_keys as $key &#41; &#123;
    
if&#40; $this->current_tag == $key &#41; &#123;
    
$this->inside_tag$key &#93; = true;
    
break;
    
&#125;
    
&#125;
    
&#125;

/*
+--------------------------------------------------------------------------------+
| characterData
+--------------------------------------------------------------------------------+
*/
    
function characterData&#40;$parser, $data&#41; &#123; 
    
// skip if this element == ""
    
if&#40; trim&#40;$data&#41; != "" &#41; &#123;
     if&#40; $this->inside_tag[ $this->main_id &#93; &#41; &#123; 
$done false;
     foreach&#40; $this->sub_keys as $key &#41; &#123;
     if&#40; isset&#40;$this->inside_tag[ $key &#93;&#41; && $this->inside_tag[ $key &#93; == true &#41; &#123;
     if&#40; isset&#40;$this->data[ $key &#93;[ $this->current_tag &#93;&#41; &#41; &#123;
     $this->data$key &#93;[ $this->current_tag &#93;  .= $data;
     &#125; else &#123;
     $this->data$key &#93;[ $this->current_tag &#93;  = $data;
     &#125;
     $done  true;
     break;
     &#125;
     &#125;
     if&#40; $done == false &#41; &#123;
     $this->feed_data$this->current_tag &#93; = $data;
     &#125;
     &#125; 
    
&#125;       
    
&#125;

/*
+--------------------------------------------------------------------------------+
| endElement
+--------------------------------------------------------------------------------+
*/
    
function endElement&#40;$parser, $name&#41; &#123;    
    
    
    
foreach&#40; $this->sub_keys as $key &#41; &#123;
    
if&#40; $name == $key &#41; &#123;
    
$this->inside_tag$key &#93;  = false;    
    
$this->feed_data$key &#93;[&#93;  = $this->data[ $key &#93;;
    
$this->data$key &#93;  = array&#40;&#41;;
    
break;
    
&#125;
    
&#125;
    
if&#40; $name == $this->main_id &#41; &#123;
            
$this->inside_tag$this->main_id &#93; = false;
    
&#125;    
        
        
$this->current_tag "";
    &
#125;
&#125;
?>


ก็โค้ดนี้ครับ เป็น class
ใช้ง่าย จะแปลง rss เป็นarray ให้ครับ

วิธีใช้อ่านข้างบนโค้ดดูครับ

(แนะนำมาจากคุณ Tee++; )

thai1

ขอบคุณครับ

ผมใบให้อีกนิดใน url มันเกี่ยวกับการศึกษา

ColdMoney

อ้างถึงจาก: EThaiZoneก็โค้ดนี้ครับ เป็น class
ใช้ง่าย จะแปลง rss เป็นarray ให้ครับ

วิธีใช้อ่านข้างบนโค้ดดูครับ

(แนะนำมาจากคุณ Tee++; )

ใจจ้า  :lol:
[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]

aomnaruk

โอ้ Feed เยอะจริงๆ มีทั้ง category และ search เอา

คำใบ้ = (feedเพิ่มความฉลาด)

ดีใจจังแกะโค้ดได้แล้วง่ายมักๆ ว่าแล้วต้องใช้วิธีนี้  อิอิ

:lol:  :lol:  :lol:

tosakp

อ่า เพิ่งเข้ามาดูกระทู้
ขอบคุณครับ  :D

คำใบ้ (2^6)/2 = ASCII  :lol:

EThaiZone

เคลียร์กันไปหลายคนแล้ว

มีใครกล้าลองอีกไหมครับ

ไม่ยากเลยนะ  :D


EThaiZone

อ้างถึงจาก: jatuphumมานั่งรอฟังเฉลย  :lol:  :lol:

เอาเฉลยเลยละกัน
เพราะมันข้ามวันมาแล้ว   :lol:



อ้างถึงpart 1

"พลับไม่อยากให้คนอื่นรู้จึงขอ 2
วิธีที่พลับใช้จึงเอาเลขที่รู้กันกับคุณไปยกกำลัง 6"

"เลขที่รู้กันกับคุณ" ในที่นี้คือ 2 ครับ
เพราะพลับพูดว่า "พลับไม่อยากให้คนอื่นรู้จึงขอ 2"
(เป็นตัวเลขตัวเดียวในบทสนทนาที่สามารถนำไปยกกำลังได้)
พอคุณเอา 2 ไปยกกำลัง 6 จะได้ 64

สำหรับคนเป็น php ดูคงรู้.. ใช่แล้ว
พลับเข้ารหัสนี้ด้วย base64

ที่นี้ "พลับไม่อยากให้คนอื่นรู้จึงขอ 2"
มันหมายถึง พลับทำการเข้ารหัสซ้ำ 2 ครั้ง
ดังนั้นคุณต้องใช้ base64_decode ทั้งหมด 2 ครั้งครับ

ที่นี้คุณจะได้โค้ดที่ถูกถอดออกมาแล้วในรูป

104-116-116-112-58-47-47-119-119-119-46-101-100-117-99-97-116-105-111-110-97-108-45-102-101-101-100-115-46-99-111-109

อ้างถึงpart 2

"จงหาความเหมือนแล้วกำจัดทิ้ง
เปลี่ยนมันเป็นสิ่งที่สื่อสารกัน
พลับไม่ต้องบอกคุณก็รู้"

และกระดาษที่พลับจดเอาไว้

&#___;


"จงหาความเหมือนแล้วกำจัดทิ้ง"
ข้างบนสิ่งที่เหมือนกันคือ - ที่ถูกคั่นไว้
ดังนั้นต้องใช้ explode ในการแยกออกมาเป็น array

"เปลี่ยนมันเป็นสิ่งที่สื่อสารกัน
พลับไม่ต้องบอกคุณก็รู้"


ครับ พลับไม่ได้บอกอะไร แต่พลับจดกระดาษใบ้ให้ว่า
&#___;

ซึ่งสำหรับคนเขียน php มันคือโค้ดนำสำหรับแสดง ascii ในรูปแบบ ตัวอักษร

ดังนั้นคุณก็แค่ foreach วนทุกตัวมาแสดง
แล้วเอา &# ใส่หัว และ ; ปิดท้าย
(ความเหมือนที่ถูกกำจัดไปด้วยคือ ___ )

คุณก็จะได้คำตอบเป็น

http://www.educational-feeds.com

พวกคุณเก่งมากที่ผ่านเกมส์นี้ได้

ติดตามเกมส์ต่อไป (ถ้ามี)  :D

cancanx

:P ของจริง เลย อันนี้ 55555

ขอบคุณครับผม ถ้าพี่ไม่เฉลย มีหวัง ผมแก่พอดี กว่าจะแกะได้