webForumDet fria alternativet

Nyhets överföring

PHP

10 svar · 405 visningar · startad av mr.mainline

Medlem sedan feb. 2003777 inlägg
Frågan#1

Tjenare!!!
Jag skulle vilja ha hjälp att få deras nyheter på min site
http://www.mainline-baits.com/new.htm

Snälla hjälp mig med det.

Medlem sedan jan. 20021 122 inlägg
#2

Leta rätt på sidan med nyheterna, spara urlen i en sträng, kör $sidan = file_get_contents($url), läs av resultatet, och hitta mönstret som omger nyheterna, t.ex. att de alltid har en viss tag framför nyheterna. Sedan använder du preg_match och preg_replace för att sortera ut det intressanta, och sedan skriver du ut det.
Verkade inte vara en sån sida som har rss-feed/motsv., men kolla upp det, det gör det mycket lättare om det finns

Medlem sedan juni 20006 031 inlägg
#3

Du får nog snygga till den här koden lite, men det är alltid en början för dig.

<?php 
$url = 'http://www.mainline-baits.com/new.htm';
 
$content = file_get_contents($url);
preg_match("/<p class=\"style37\"><span class=\"style23\">(.*?)<\/span> <\/p>/is", $content, $match);

echo $match[0];
?>
Medlem sedan feb. 2003777 inlägg
#4

Får dettta felmeddelande:
Warning: file_get_contents(): URL file-access is disabled in the server configuration in /customers/freddeholm.com/freddeholm.com/httpd.www/test.php on line 5

Warning: file_get_contents(http://www.mainline-baits.com/new.htm): failed to open stream: no suitable wrapper could be found in /customers/freddeholm.com/freddeholm.com/httpd.www/test.php on line 5

Så det är väl mitt webbhotell som inte vill som jag vill,jag använder B-one.

Medlem sedan juni 20006 031 inlägg
#5

Japp, beror på deras inställningar i php.ini (allow_url_fopen).
Har ingen aning om man kan gå förbi den inställningen på något sätt.

Medlem sedan feb. 2003777 inlägg
#6

Det ska funka med denna kod på B-one

<?php 
$fp = fsockopen ("www.mainline-baits.com/new.htm", 80, $errno, $errstr, 30); 
if (!$fp) { 
   echo "$errstr ($errno)<br>\n"; 
} else { 
   $content = ''; 
   fputs ($fp, "GET /new.htm HTTP/1.0\r\nHost: [url]www.mainline-baits.com/new.htm\r\n\r\n[/url]"); 
   while (!feof($fp)) { 
       $content .= fgets ($fp,128); 
   } 
   fclose ($fp); 
} 
 
echo "<h4>Koden för denna sida</h4>\n"; 
 
echo "<hr>\n"; 
 
echo $content; 
 
?>

men får detta fel:
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /customers/freddeholm.com/freddeholm.com/httpd.www/test.php on line 2

Warning: fsockopen(): unable to connect to https://www.mainline-baits.com/new.htm:80 in /customers/freddeholm.com/freddeholm.com/httpd.www/test.php on line 2
Success (0)

Medlem sedan mars 200399 inlägg
#7

mr.mainline skrev:

Det ska funka med denna kod på B-one

<?php 
$fp = fsockopen ("www.mainline-baits.com/new.htm", 80, $errno, $errstr, 30); 
if (!$fp) { 
   echo "$errstr ($errno)<br>\n"; 
} else { 
   $content = ''; 
   fputs ($fp, "GET /new.htm HTTP/1.0\r\nHost: [url]www.mainline-baits.com/new.htm\r\n\r\n[/url]"); 
   while (!feof($fp)) { 
       $content .= fgets ($fp,128); 
   } 
   fclose ($fp); 
} 
 
echo "<h4>Koden för denna sida</h4>\n"; 
 
echo "<hr>\n"; 
 
echo $content; 
 
?>

men får detta fel:
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /customers/freddeholm.com/freddeholm.com/httpd.www/test.php on line 2

Warning: fsockopen(): unable to connect to https://www.mainline-baits.com/new.htm:80 in /customers/freddeholm.com/freddeholm.com/httpd.www/test.php on line 2
Success (0)

Känns som om du bör ta bort /new.htm biten på rad 2. Att det är den filen du vill ha står i din GET-sats längre ned.

Medlem sedan feb. 2003777 inlägg
#8

ok,nu inga fel meddelande men kolla på http://www.freddeholm.com/test.php

Vad göra???

Medlem sedan feb. 2003173 inlägg
#9

Testade på min server med detta
Fick då följande svar

Parse error: parse error, unexpected T_STRING in /home2/min_server/public_html/test/index.php on line 19

Testade då med hela raden 2 intakt.
Om det kan vara till någon hjälp.

Medlem sedan mars 200399 inlägg
#10

Den här koden funkar på min server:

<?php
$fp = fsockopen("www.mainline-baits.com", 80, $errno, $errstr, 30);
if (!$fp) {
   echo "$errstr ($errno)<br />\n";
} else {
   $out = "GET /new.htm HTTP/1.1\r\n";
   $out .= "Host: [url]www.mainline-baits.com\r\n[/url]";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);
   while (!feof($fp)) {
       echo fgets($fp, 128);
   }
   fclose($fp);
}
?>

i princip rippad från http://se.php.net/manual/en/function.fsockopen.php

Medlem sedan feb. 2003777 inlägg
#11

Då är det B-one om inte stödjer funktionen "fsockopen"

260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)