login  Naam:   Wachtwoord: 
Registreer je!
 Forum

geen result (Opgelost)

Offline valles10 - 29/07/2010 12:39 (laatste wijziging 29/07/2010 13:28)
Avatar van valles10HTML 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:
  1. <?php
  2. class Item{
  3. private $_pageResult;
  4. private $_itemUrl = "http://itemdb-rs.runescape.com/viewitem.ws?obj=";
  5. public $itemId;
  6. public $itemName;
  7. public $itemPrice;
  8.  
  9. public function __construct($id){
  10. $this->itemId = $id;
  11. }
  12.  
  13. public function getItemPage(){
  14. $ch = curl_init();
  15. $timeout = 5;
  16. curl_setopt ($ch, CURLOPT_URL, $this->_itemUrl.$this->itemId);
  17. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  18. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  19. $this->_pageResult = curl_exec($ch);
  20. curl_close($ch);
  21. return $this;
  22. }
  23.  
  24. public function cutItemPrice() {
  25. $startat = "<b>Market price:</b> ";
  26. $stopat = "</span>";
  27. $exploded = explode($startat,$this->_pageResult);
  28. $exploded = explode($stopat,$exploded[1]);
  29. $result = str_replace('<br />','',nl2br($exploded[0]));
  30. $this->itemPrice = strtr($result, ",", " ");
  31. }
  32.  
  33. public function cutItemName() {
  34. $startat = '<img id="item_image" src="http://services.runescape.com/m=itemdb_rs/3065_obj_big.gif?id='.$this->itemId.'" alt="';
  35. $stopat = '">';
  36. $exploded = explode($startat,$this->_pageResult);
  37. $exploded = explode($stopat,$exploded[1]);
  38. $result = str_replace('<br />','',nl2br($exploded[0]));
  39. $this->itemName = $result;
  40. }
  41.  
  42. public function name(){
  43. return $this->itemName;
  44. }
  45.  
  46. public function price(){
  47. return $this->itemPrice;
  48. }
  49.  
  50. }
  51. ?>


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
Offline gnotrgnotr - 29/07/2010 13:18
Avatar van gnotrgnotr Nieuw lid probeer dit ik gok dat het misschien goed is:

$item = new Item('1947');//grain
echo $item->price();
echo $item->name();
Offline valles10 - 29/07/2010 13:27 (laatste wijziging 29/07/2010 13:28)
Avatar van valles10 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?
Offline lemoinet - 29/07/2010 13:37
Avatar van lemoinet PHP gevorderde staat er wel iets in je _pageResult. het kan zijn dan Runescape zijn systeem heeft aangepast.
Offline valles10 - 29/07/2010 13:41
Avatar van valles10 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 
Offline lemoinet - 30/07/2010 11:54 (laatste wijziging 30/07/2010 11:55)
Avatar van lemoinet PHP gevorderde Het is normaal dat _pageResult nog leeg is. Je roept nergens getItemPage(). Dus haalt hij ook niets op.

  1. <?php
  2. $item = new Item('1947');
  3. $item_price = $item->price();
  4. $item_name = $item->name();
  5. ?>

item.class.php
  1. <?php
  2. class Item{
  3. private $_pageResult;
  4. private $_itemUrl = "http://itemdb-rs.runescape.com/viewitem.ws?obj=";
  5. public $itemId;
  6. private $_itemName;
  7. private $_itemPrice;
  8.  
  9. public function __construct($id){
  10. $this->itemId = $id;
  11. }
  12.  
  13. private function getItemPage(){
  14. $ch = curl_init();
  15. $timeout = 5;
  16. curl_setopt ($ch, CURLOPT_URL, $this->_itemUrl.$this->itemId);
  17. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  18. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  19. $this->_pageResult = curl_exec($ch);
  20. curl_close($ch);
  21. return $this;
  22. }
  23.  
  24. private function cutItemPrice() {
  25. $startat = "<b>Market price:</b>";
  26. $stopat = "</span>";
  27. $exploded = explode($startat,$this->res());
  28. $exploded = explode($stopat,$exploded[1]);
  29. $result = str_replace('<br />','',nl2br($exploded[0]));
  30. $this->_itemPrice = strtr($result, ",", " ");
  31. }
  32.  
  33. private function cutItemName() {
  34. $startat = '<img id="item_image" src="http://services.runescape.com/m=itemdb_rs/3065_obj_big.gif?id='.$this->itemId.'" alt="';
  35. $stopat = '">';
  36. $exploded = explode($startat,$this->res());
  37. $exploded = explode($stopat,$exploded[1]);
  38. $result = str_replace('<br />','',nl2br($exploded[0]));
  39. $this->_itemName = $result;
  40. }
  41.  
  42. public function name()
  43. {
  44. if(null === $this->_itemName)
  45. {
  46. $this->cutItemName();
  47. }
  48. return $this->_itemName;
  49. }
  50.  
  51. public function price()
  52. {
  53. if(null === $this->_itemPrice)
  54. {
  55. $this->cutItemPrice();
  56. }
  57. return $this->_itemPrice;
  58. }
  59. public function res()
  60. {
  61. if(null === $this->_pageResult)
  62. {
  63. $this->getItemPage();
  64. }
  65. return $this->_pageResult;
  66. }
  67.  
  68. }
  69. ?>


PS: vermijd shorttags Niet elke host aanvaardt deze manier van scripten
Offline valles10 - 30/07/2010 12:07 (laatste wijziging 30/07/2010 12:09)
Avatar van valles10 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...
Offline lemoinet - 30/07/2010 12:13
Avatar van lemoinet PHP gevorderde bij mij werkt het wel. dus zal het probleem ergens bij jou liggen.

curl geactiveerd?
Bedankt door: valles10
Offline valles10 - 30/07/2010 12:14 (laatste wijziging 30/07/2010 12:20)
Avatar van valles10 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.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.226s