geen result (Opgelost)
valles10 - 29/07/2010 12:39 (laatste wijziging 29/07/2010 13:28)
HTML interesse
Ik heb een tijdje geleden een script gemaakt die itemprices van de RuneScape Grand Exchange haalt. Het werkte volledig, nu enkele maanden later werkt het niet meer.
item.class.php:
<?php
class Item{
private $_pageResult;
private $_itemUrl = "http://itemdb-rs.runescape.com/viewitem.ws?obj=";
public $itemId;
public $itemName;
public $itemPrice;
public function __construct($id){
$this->itemId = $id;
}
public function getItemPage(){
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $this->_itemUrl.$this->itemId);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$this->_pageResult = curl_exec($ch);
curl_close($ch);
return $this;
}
public function cutItemPrice() {
$startat = "<b>Market price:</b> ";
$stopat = "</span>";
$exploded = explode($startat,$this->_pageResult);
$exploded = explode($stopat,$exploded[1]);
$result = str_replace('<br />','',nl2br($exploded[0]));
$this->itemPrice = strtr($result, ",", " ");
}
public function cutItemName() {
$startat = '<img id="item_image" src="http://services.runescape.com/m=itemdb_rs/3065_obj_big.gif?id='.$this->itemId.'" alt="';
$stopat = '">';
$exploded = explode($startat,$this->_pageResult);
$exploded = explode($stopat,$exploded[1]);
$result = str_replace('<br />','',nl2br($exploded[0]));
$this->itemName = $result;
}
public function name(){
return $this->itemName;
}
public function price(){
return $this->itemPrice;
}
}
?>
<?php
class Item{
private $_pageResult ;
private $_itemUrl = "http://itemdb-rs.runescape.com/viewitem.ws?obj=" ;
public $itemId ;
public $itemName ;
public $itemPrice ;
public function __construct( $id ) {
$this -> itemId = $id ;
}
public function getItemPage( ) {
$ch = curl_init( ) ;
$timeout = 5 ;
curl_setopt ( $ch , CURLOPT_URL, $this -> _itemUrl. $this -> itemId ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER, 1 ) ;
curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT, $timeout ) ;
$this -> _pageResult = curl_exec( $ch ) ;
curl_close( $ch ) ;
return $this ;
}
public function cutItemPrice( ) {
$startat = "<b>Market price:</b> " ;
$stopat = "</span>" ;
$exploded = explode ( $startat , $this -> _pageResult
) ; $exploded = explode ( $stopat , $exploded [ 1 ] ) ; $this -> itemPrice = strtr ( $result , "," , " " ) ; }
public function cutItemName( ) {
$startat = '<img id="item_image" src="http://services.runescape.com/m=itemdb_rs/3065_obj_big.gif?id=' . $this -> itemId . '" alt="' ;
$stopat = '">' ;
$exploded = explode ( $startat , $this -> _pageResult
) ; $exploded = explode ( $stopat , $exploded [ 1 ] ) ; $this -> itemName = $result ;
}
public function name( ) {
return $this -> itemName ;
}
public function price( ) {
return $this -> itemPrice ;
}
}
?>
zien jullie mogelijke fouten? en wat kan er beter aan deze code?
alvast bedankt ;)
EDIT:
als ik mijn price en name aanroep krijg ik geen result, als ik id aanroep, dan krijg ik wel id terug.
$item = new Item('1947');//grain
echo $item->price();
echo $item->name();
8 antwoorden
Gesponsorde links
gnotrgnotr - 29/07/2010 13:18
Nieuw lid
probeer dit ik gok dat het misschien goed is:
$item = new Item('1947');//grain
echo $item->price();
echo $item->name();
valles10 - 29/07/2010 13:27 (laatste wijziging 29/07/2010 13:28)
HTML interesse
gnotrgnotr schreef:
probeer dit ik gok dat het misschien goed is:
$item = new Item('1947');//grain
echo $item->price();
echo $item->name();
:s? wat is verschil met het mijne?
lemoinet - 29/07/2010 13:37
PHP gevorderde
staat er wel iets in je _pageResult. het kan zijn dan Runescape zijn systeem heeft aangepast.
valles10 - 29/07/2010 13:41
HTML interesse
lemoinet schreef:
staat er wel iets in je _pageResult. het kan zijn dan Runescape zijn systeem heeft aangepast.
public function res(){
return $this->_pageResult;
}
<?=$item->res(); ?>
en idd hij toont niets van result. Hoe komt dit
lemoinet - 30/07/2010 11:54 (laatste wijziging 30/07/2010 11:55)
PHP gevorderde
Het is normaal dat _pageResult nog leeg is. Je roept nergens getItemPage(). Dus haalt hij ook niets op.
<?php
$item = new Item('1947');
$item_price = $item->price();
$item_name = $item->name();
?>
<?php
$item = new Item( '1947' ) ;
$item_price = $item -> price ( ) ;
$item_name = $item -> name ( ) ;
?>
item.class.php
<?php
class Item{
private $_pageResult;
private $_itemUrl = "http://itemdb-rs.runescape.com/viewitem.ws?obj=";
public $itemId;
private $_itemName;
private $_itemPrice;
public function __construct($id){
$this->itemId = $id;
}
private function getItemPage(){
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $this->_itemUrl.$this->itemId);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$this->_pageResult = curl_exec($ch);
curl_close($ch);
return $this;
}
private function cutItemPrice() {
$startat = "<b>Market price:</b>";
$stopat = "</span>";
$exploded = explode($startat,$this->res());
$exploded = explode($stopat,$exploded[1]);
$result = str_replace('<br />','',nl2br($exploded[0]));
$this->_itemPrice = strtr($result, ",", " ");
}
private function cutItemName() {
$startat = '<img id="item_image" src="http://services.runescape.com/m=itemdb_rs/3065_obj_big.gif?id='.$this->itemId.'" alt="';
$stopat = '">';
$exploded = explode($startat,$this->res());
$exploded = explode($stopat,$exploded[1]);
$result = str_replace('<br />','',nl2br($exploded[0]));
$this->_itemName = $result;
}
public function name()
{
if(null === $this->_itemName)
{
$this->cutItemName();
}
return $this->_itemName;
}
public function price()
{
if(null === $this->_itemPrice)
{
$this->cutItemPrice();
}
return $this->_itemPrice;
}
public function res()
{
if(null === $this->_pageResult)
{
$this->getItemPage();
}
return $this->_pageResult;
}
}
?>
<?php
class Item{
private $_pageResult ;
private $_itemUrl = "http://itemdb-rs.runescape.com/viewitem.ws?obj=" ;
public $itemId ;
private $_itemName ;
private $_itemPrice ;
public function __construct( $id ) {
$this -> itemId = $id ;
}
private function getItemPage( ) {
$ch = curl_init( ) ;
$timeout = 5 ;
curl_setopt ( $ch , CURLOPT_URL, $this -> _itemUrl. $this -> itemId ) ;
curl_setopt ( $ch , CURLOPT_RETURNTRANSFER, 1 ) ;
curl_setopt ( $ch , CURLOPT_CONNECTTIMEOUT, $timeout ) ;
$this -> _pageResult = curl_exec( $ch ) ;
curl_close( $ch ) ;
return $this ;
}
private function cutItemPrice( ) {
$startat = "<b>Market price:</b>" ;
$stopat = "</span>" ;
$exploded = explode ( $startat , $this -> res ( ) ) ; $exploded = explode ( $stopat , $exploded [ 1 ] ) ; $this -> _itemPrice
= strtr ( $result , "," , " " ) ; }
private function cutItemName( ) {
$startat = '<img id="item_image" src="http://services.runescape.com/m=itemdb_rs/3065_obj_big.gif?id=' . $this -> itemId . '" alt="' ;
$stopat = '">' ;
$exploded = explode ( $startat , $this -> res ( ) ) ; $exploded = explode ( $stopat , $exploded [ 1 ] ) ; $this -> _itemName = $result ;
}
public function name( )
{
if ( null === $this -> _itemName)
{
$this -> cutItemName ( ) ;
}
return $this -> _itemName;
}
public function price( )
{
if ( null === $this -> _itemPrice)
{
$this -> cutItemPrice ( ) ;
}
return $this -> _itemPrice;
}
public function res( )
{
if ( null === $this -> _pageResult)
{
$this -> getItemPage ( ) ;
}
return $this -> _pageResult;
}
}
?>
PS: vermijd shorttags Niet elke host aanvaardt deze manier van scripten
valles10 - 30/07/2010 12:07 (laatste wijziging 30/07/2010 12:09)
HTML interesse
lemoinet schreef:
Het is normaal dat _pageResult nog leeg is. Je roept nergens getItemPage(). Dus haalt hij ook niets op.
[..code..]
item.class.php
[..code..]
PS: vermijd shorttagsÂ
Niet elke host aanvaardt deze manier van scripten
het werkt nog steeds niet en shorttags kunnen geen kwaad
Die result blijft leeg...
lemoinet - 30/07/2010 12:13
PHP gevorderde
bij mij werkt het wel. dus zal het probleem ergens bij jou liggen.
curl geactiveerd?
Bedankt door: valles10
valles10 - 30/07/2010 12:14 (laatste wijziging 30/07/2010 12:20)
HTML interesse
hmm... daar zeg je zoiets!!! ff testen op mijn andere host
curl stond aan, ik had item.class upgeload naar mijn andere host en daar ging het. Ik probeerde daarna exact hetzelfde op de host waar het niet op werkte, en nu werkt die wel. Raar maar het werkt! Thnx!
Gesponsorde links
Dit onderwerp is gesloten .