informatie ophalen van andere website [probleem]
Ik heb deze pagina gemaakt:
http://rmhproductions.nl/test/index.php?gebruikersnaam=sulanum
maar wil daar mee graag informatie halen van de website die ik in index.php heb ingesteld.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo "<title>info van :: ".$_GET['gebruikersnaam']."</title>";
$gebruikernaam = $_GET['gebruikersnaam'];
$handle = @fopen("http://www.secretcrime.nl/member/".$gebruikernaam."", "ONLINE");
if ($handle) {
while (($buffer = fgets($handle, 2000)) !== false) {
echo $buffer;
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
?>
echo "<title>info van :: ".$_GET['gebruikersnaam']."</title>";
$gebruikernaam = $_GET['gebruikersnaam'];
$handle = @fopen("http://www.secretcrime.nl/member/".$gebruikernaam."", "ONLINE");
if ($handle) {
while (($buffer = fgets($handle, 2000)) !== false) {
echo $buffer;
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
?>
ik wil graag dat ik alleen bepaalde informatie krijg van "secretcrime", die ik in mijn index.php zelf heb aangegeven, maar heb geen idee hoe.
Zou graag willen hebben dat die alleen deze informatie ophaalt :
- gebruikersnaam
- power
- familie
Even een vraag over deze regel
Toen ik deze code vond, stond er eerst "r" i.p.v. "ONLINE", maar wat houd dat precies in?
Met vriendelijke groet,
Marco
En waarom heb je dat veranderd in "ONLINE"?
fopen
Goed idee om dus de manual te gaan lezen: Quote:
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
mode
The mode parameter specifies the type of access you require to the stream. It may be any of the following:
mode
The mode parameter specifies the type of access you require to the stream. It may be any of the following:
Ozzie PHP op 15/12/2013 23:53:01:
>> Toen ik deze code vond, stond er eerst "r" i.p.v. "ONLINE", maar wat houd dat precies in?
En waarom heb je dat veranderd in "ONLINE"?
En waarom heb je dat veranderd in "ONLINE"?
Zonder iets uit te proberen, kom je nergens :P
Was gewoon benieuwd, wat het deed, als ik het veranderde naar online.
(dat hij evnt de lijn zo lezen waar "online" staat.
Correct, maar zou het dan niet eerst wat slimmer zijn om je te verdiepen in wat je aan het doen bent? Als je altijd op deze manier programmeert, kom je niet ver. Je doet iets waarvan je de gevolgen niet weet, en dan ga je vervolgens ook nog aan ons vragen wat je eigenlijk aan het doen bent? Volgens mij snap je zelf ook wel dat dat niet heel handig is ;)
Slecht idee om een '@' te gebruiken om je errors te verbergen. Dat is hetzelfde als je kleren onder je bed schuiven om je kamer 'op te ruimen'. Verder zou ik niet fopen gebruiken. Ik heb het zelf nog nooit voor die reden gebruikt. Ik zou zelf file_get_contents gebruiken.
Ik heb ook wat tutorials en google afgezocht, maar kom niet bij de nuttige informatie, die ik nodig heb.
Nu krijg ik alleen de tekst en afbeeldingen te zien, zonder layout.
Stel, je hebt deze profiel : http://www.secretcrime.nl/member/sulanum
is er dan een mogelijk om met file_get_contents, de volgende teksten (apart) kan pakken?
- gebruikernsaam
- familienaam
- rank
ik wil namelijk die informatie / gegevens gebruiken voor banners.
(die systeem is al klaar), zodat je daar live de informatie kan zien van de gebruiker.
Aangezien de website niet van mij is, kan ik niet simpelweg de informatie uit de database halen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/* De gebruiker waarvan je de gegevens wilt ophalen */
if(!isset($_GET['user'])){$_GET['user'] = 'sulanum';}
/* Pagina ophalen en opslaan in $handle */
$handle = file_get_contents('http://www.secretcrime.nl/member/' . htmlspecialchars($_GET['user'], ENT_QUOTES));
/* Alles tussen <td> en </td> opslaan in $result */
if(isset($handle)){
preg_match_all('|<td[^>]*?>(.*?)</td>|si', $handle, $result);
}
/* De velden die we willen hebben */
$fields = Array('Gebruikersnaam','Power','Familie');
if(isset($result)){
foreach($result[0] AS $key=>$val){
$val = strip_tags($val); // Html verwijderen
if(strlen($val) > 0 && array_keys($fields, $val)){ // Als waarde in $fields voorkomt...
$array[$val] = strip_tags($result[0][$key+2]); // opslaan in $array()
}
}
}
/* Deze velden weergeven */
if(isset($array)){
foreach($array AS $title=>$value){
echo $title . ': ' . $value . '<br />';
}
} else {
echo 'Gebruiker niet gevonden';
}
?>
/* De gebruiker waarvan je de gegevens wilt ophalen */
if(!isset($_GET['user'])){$_GET['user'] = 'sulanum';}
/* Pagina ophalen en opslaan in $handle */
$handle = file_get_contents('http://www.secretcrime.nl/member/' . htmlspecialchars($_GET['user'], ENT_QUOTES));
/* Alles tussen <td> en </td> opslaan in $result */
if(isset($handle)){
preg_match_all('|<td[^>]*?>(.*?)</td>|si', $handle, $result);
}
/* De velden die we willen hebben */
$fields = Array('Gebruikersnaam','Power','Familie');
if(isset($result)){
foreach($result[0] AS $key=>$val){
$val = strip_tags($val); // Html verwijderen
if(strlen($val) > 0 && array_keys($fields, $val)){ // Als waarde in $fields voorkomt...
$array[$val] = strip_tags($result[0][$key+2]); // opslaan in $array()
}
}
}
/* Deze velden weergeven */
if(isset($array)){
foreach($array AS $title=>$value){
echo $title . ': ' . $value . '<br />';
}
} else {
echo 'Gebruiker niet gevonden';
}
?>
Gewijzigd op 17/12/2013 18:03:10 door Michael -