---
title: "Undefined offset??"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/91379-undefined-offset"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Viktor"
published: "2003-11-26T22:36:41.000Z"
updated: "2003-11-26T22:54:18.000Z"
replies: 2
views: 364
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/91379-undefined-offset"
---

# Undefined offset??

## #1 — Viktor, 2003-11-26T22:36Z

Håller på att fixa med en RSS läsare i PHP men den fungerar bra för vissa sidor (<http://www.atlasf1.com/rss/news.xml> och <http://www.grandprix.com/rss.xml> t.ex.), men på vissa andra sidor får jag först ett

> Undefined offset: 1 in c:\\inetpub\\wwwroot\\rss\\test.php on line 73

error men sedan så laddas sidan bra. Detta händer på <http://rss.news.yahoo.com/rss/topstories>. Här är koden (rad 73 i fet stil)

```
<?php
	header("Content-type:text/plain");
?>

<?php
	$file=new GetWebObject("http://rss.news.yahoo.com/rss/topstories",80);
	echo $file->get_content();
	
	class GetWebObject
	{
		var $host="";
		var $path="";
		var $port=0;
		var $header = array();
		var $content = "";

		function getRequest($url)
		{
			$url=eregi_replace("http://", "", $url);
			return(stristr($url, "/"));
		}

		function getHost($url)
		{
			$url=eregi_replace("http://", "", $url);
			return(substr($url,0,strpos($url,"/")));
		}

		function GetWebObject($url, $port)
		{
			$this->host=$this->getHost($url);
			$this->path=$url;
			$this->port=$port;
			$this->fetch();
		}

		function fetch()
		{
			$fp = fsockopen ($this->host, $this->port,$errno,$errstr);

			if(!$fp)
			{
				die("Could not connect to host.");
			}

			$header_done=false;

			$request = "GET ".$this->path." HTTP/1.1\r\n";
			$request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
			$request .= "Host: ". $this->host ."\r\n";
			$request .= "Connection: Close\r\n\r\n";
			$return = '';

			fputs ($fp, $request);
			$line = fgets ($fp, 128);
			$this->header["status"] = $line;
			while (!feof($fp))
			{
				$line = fgets ( $fp, 128 );
				if($header_done)
				{
					$this->content .= $line;
				}
				else
				{
					if($line == "\r\n")
					{
						$header_done=true;
					}
					else
					{
						$data = explode(": ",$line);
					[B]	$this->header[$data[0]] = $data[1];[/B]
					}
				}
			}
			fclose ($fp);
		}

		function get_header()
		{
			return($this->header);
		}

		function get_content()
		{
			return($this->content);
		}
	}
?>
```

Någon som vet vad det är som går fel och hur man kan fixa det? Om någon tror att den har en bättre funktion för att läsa in en sida i minnet så får ni gärna lägga in den här :)

/Viktor

Permalänk: https://www.webforum.nu/p/91379

## #2 — SPiN, 2003-11-26T22:49Z

Felet beror väl antagligen på att $data\[1\] är null ( Raden är tom eller innehåller inget kolon ). Skulle jag gissa på.

Ska du inte använda de headers som mottagarsidan skickar så kan du enkelt göra så här:

```
$content = readfile( "http://server.nu/file.php" );
```

Permalänk: https://www.webforum.nu/p/1214456

## #3 — Viktor, 2003-11-26T22:54Z

:bire Fungerar perfekt och mycket mindre kod blev det också :)

/Viktor

Permalänk: https://www.webforum.nu/p/1214459

---

Tråden på webben: https://www.webforum.nu/amne/php/91379-undefined-offset
