Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: PHP: Tiedon hakeminen toiselta sivulta

Sivun loppuun

Janchi [09.10.2010 00:02:02]

#

Hello,
Käytän joukkueemme kotisivuilla Joomlaa ja ongelmakseni on tullut salibandy.netin uudet sivut.
Ennen pelkän tiedon(esim. sarjatalukon) pystyi hakemaan suoraan Joomlan "wrapper" toiminnolla koska sivut olivat enemmänkin tekstimuodossa.

Nyt uusia sivuja wrapatessa sarjataulukoksi tulee koko salibandy.netin sivusto ja se ei kyllä näytä hyvältä :) Tuon tietysti pystyy linkittämään uuteen avautuvaan ikkunaan, mutta haluaisin sen sivuston "sisälle"

Nyt kysyisinkin että saako tältä sivulta: http://salibandy.net/kilpailutoiminta/tulospalvelu/etela-suomi-miehet-5-div-12-lohkosarjataulukko
haettua pelkän tuon sarjataulukon ilman mitään noita muita hörpellyksiä. Siis ihan vaikka tekstimuodossakin riittäisi.

Jos saa, niin olisiko joku ystävällinen ja kertoisi hyvin vähän php:tä taitavalle sillä tavalla että minäkin ymmärrän, että miten?

Jokotai [09.10.2010 00:11:07]

#

  <div class="content">
      <pre>SSBL/tl                                   4.10.2010

  MIEHET V-DIV. 12.LOHKO</pre><pre>IVU                    2   2  0  0   13-  6   4
FC Huuru               2   2  0  0   13-  7   4
Twentybandy            2   2  0  0   10-  7   4
FBC Helsinki           2   1  1  0   12-  7   3
Fenno                  2   1  0  1   12-  7   2
Comrades               2   1  0  1   10- 13   2
Pauhu                  2   0  1  1    7- 14   1
PH KeHo                2   0  0  2   10- 12   0
Greasers III           2   0  0  2    6- 13   0
ViDi                   2   0  0  2    4- 11   0</pre>    </div>

Se näyttää tuollaiselta sivun koodissa. Etsit vain aina tuon saman kohdan ja käsittelet haluamaksesi.

Metabolix [09.10.2010 00:29:04]

#

<?php
function hae($url) {
	$data = file_get_contents($url);
	$data = preg_replace("#\r\n?#", "\n", $data);
	preg_match_all('#<pre>(.*?)</pre>#si', $data, $data);
	$data = implode("\n", $data[1]);
	return $data;
}
$teksti = hae("http://salibandy.net/kilpailutoiminta/tulospalvelu/etela-suomi-miehet-5-div-12-lohkosarjataulukko");
echo "<pre>", $teksti, "</pre>\n";

Näköjään kuitenkin osa kausista on ihan eri muodossa... Ihmeellisiä viritelmiä sitä käytetäänkin. >_>

Janchi [10.10.2010 19:49:13]

#

Kiitoksia vastauksesta! :)

kokeilin tuota scriptiä ihan tavallisella php sivulla enkä saanut toimimaan. Pitääkö tuohon lisätä jotain vai pitäisikö toimiiko ihan tuollaisenaan?

Antaa tämänlaisen errorin....

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/webhost/vidi/public_html/testia.php on line 4

Warning: file_get_contents(http://salibandy.net/kilpailutoiminta/tulospalvelu/etela-suomi-miehet-5-div-12-lohkosarjataulukko) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /home/webhost/vidi/public_html/testia.php on line 4

-tossu- [10.10.2010 19:55:12]

#

Janchi kirjoitti:

Antaa tämänlaisen errorin....

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/webhost/vidi/public_html/testia.php on line 4

Tuo virhe tarkoittaa, että palvelimen ylläpitäjä on estänyt "URL file-access":in. En keksinyt mitään hyvää suomennosta tuolle, mutta se tarkoittaa, ettet voi hakea www-sivuja PHP:n tiedostofunktioilla.

Janchi [10.10.2010 20:03:58]

#

Ok, niin vähän pelkäsinkin.... Kiitoksia taas!! :)

Janchi [11.10.2010 17:26:30]

#

Sain tuon jollakin tavalla toimimaan alla olevalla koodilla kun serverin ylläpitäjä käski käyttää curl-funktiota.
En vain ymmärrä tuota että millä saan tuon tietyn kohdan tuolta kaivettua esiin, että kaikki muu lähtee pois ja pelkkä sarjataulukko jää näkyviin....?

<?php
$ch = curl_init() or die(curl_error());
curl_setopt($ch, CURLOPT_URL,"http://salibandy.net/kilpailutoiminta/tulospalvelu/etela-suomi-miehet-5-div-12-lohkosarjataulukko");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data1=curl_exec($ch) or die(curl_error());
echo "<font color=black face=verdana size=3>".$data1."</font>";
echo curl_error($ch);
curl_close($ch);
?>

Metabolix [11.10.2010 17:31:21]

#

Saat tuossa muuttujaan $data1 sivun sisällön, joka minun koodissani tulisi funktiolta file_get_contents muuttujaan $data. Voit siis korvata koodistani file_get_contents-rivin tuolla koodilla (ilman echo-rivejä). Muista vaihtaa myös muuttujan $data1 nimeksi $data ja osoitteen paikalle $url.

Janchi [11.10.2010 20:09:27]

#

Siis en kyllä saa tätä toimimaan.... nyt ei anna kyllä enää minkäänlaista erroria. Sivu vaan lataa ja lataa... :-) Mitä nyt olen tehnyt väärin?

<?php
function hae($url) {
  $ch = curl_init() or die(curl_error());
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data=curl_exec($ch) or die(curl_error());
curl_close($ch);
    $data = preg_replace("#\r\n?#", "\n", $data);
    preg_match_all('#<pre>(.*?)</pre>#si', $data, $data);
    $data = implode("\n", $data[1]);
    return $data;
}
$teksti = hae("http://salibandy.net/kilpailutoiminta/tulospalvelu/etela-suomi-miehet-5-div-12-lohkosarjataulukko");
echo "<pre>", $teksti, "</pre>\n";

-tossu- [11.10.2010 20:30:20]

#

Janchi kirjoitti:

Sivu vaan lataa ja lataa... :-) Mitä nyt olen tehnyt väärin?

Vika on varmasti siinä, ettei linkki http://salibandy.net/kilpailutoiminta/tulospalvelu/etela-suomi-miehet-5-div-12-lohkosarjataulukko toimi. Sivu lataa ja lataa, koska curl ei saa palvelimelta vastausta.

Janchi [11.10.2010 21:11:37]

#

Aivan oikein!! Nyt se toimii!! Aivan mielettömän paljon kiitoksia avusta!!!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta