Function aanroepen van server
Ik heb de volgde opstelling:
Een server met daar op een php server met eeen file waar php functions op staan. Nu wil ik dit betand inladen op mijn localwebserver en dan de functies aanroepen om te gebruiken.
SERVER:
API.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function random_password() {
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array(); //remember to declare $pass as an array
$alpha_length = strlen($alphabet) - 1; //put the length -1 in cache
for ($i = 0; $i < 8; $i++) {
$n = rand(0, $alpha_length);
$pass[] = $alphabet[$n];
}
return implode($pass); //turn the array into a string
}
?>
function random_password() {
$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
$pass = array(); //remember to declare $pass as an array
$alpha_length = strlen($alphabet) - 1; //put the length -1 in cache
for ($i = 0; $i < 8; $i++) {
$n = rand(0, $alpha_length);
$pass[] = $alphabet[$n];
}
return implode($pass); //turn the array into a string
}
?>
locaal:
test_locaal.php
Ik krijg de volgde foutmelding
Fatal error: Call to undefined function random_password() in E:\Webserver\root\API\test_online.php on line 5
Als je op die manier een script aanroept dan krijg je gewoon de output van dat script. (waarschijnlijk gewoon een lege string.
Het zou wel kunnen als je het bestand hernoemd naar API.txt
Maar dat is niet hoe een API werkt (of zou moeten werken).
Wat je beter doet:
noem dat bestand gewoon "functions.php".
Maak een bestand api.php aan
roep het aan met http://jouwapiurl.nl/api.php?do=get_random_password
api.php:
Code (php)
Maar het liefst dan uitbreiden met opties als "verstuur het antwoord als json", "beveilig het gebruik met een password" etc.
Er zijn ook functions met parameters Hoe kan ik die mee geven ?
(de naam van de functie hoeft niet gelijk te zijn aan de inhoud van $_GET['do'])
Maar kijk eens naar "webservice"
Dat is wat je in feite bouwt