j'essais d'afficher une liste de pays ainsi que le prix de leur numéro virtuel a partir d'un api mais jai ce message d'erreur:
Fatal error: Allowed memory size of 77594624 bytes exhausted (tried to allocate 8019 bytes) in...
en plus il ne m'affiche pas tous les pays
voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
 
<?php
 
set_include_path('VoxAPIClient-php/libs/PEAR');
include('VoxAPIClient-php/VoxAPIClient.php');
include('VoxAPIClient-php/Requests/UserToken.php');
include('VoxAPIClient-php/Requests/GetCountriesListRequest.php');
include('VoxAPIClient-php/Requests/GetStatesListRequest.php');
include('VoxAPIClient-php/Requests/GetDIDGroupListRequest.php');
include('VoxAPIClient-php/Requests/PlaceDIDsOrderRequest.php');
include('VoxAPIClient-php/Requests/DIDGroupFilter.php');
 
function getToken(){
	return new UserToken('login','password');
}
//fonction qui récupére les pays
function getCountriesList(){
	$client = new VoxAPIClient('http://www.voxbone.com/VoxAPI/services/VoxAPI?wsdl', true);
 
	$token = getToken();
	$request = new GetCountriesListRequest( $token );
$request->setDIDType('GEOGRAPHIC');
	$geographic = $client->getCountriesList( $request );
	/*echo '<pre>';
 print_r($geographic);
 echo '</pre>';*/
 $token = getToken();
	$request= new GetCountriesListRequest( $token );
        $request->setDIDType('NATIONAL');
 
	$national= $client->getCountriesList( $request );
   //$response= array_merge($geographic, $national);
 
 		//$response =array_unique($array);
				$response = array( ) ; // Tableau dédoublonné
foreach ( array_merge($geographic, $national) as $country ) {
    $response[$country->CountryID] = $country ;
}
       return $response;
	/*echo '<pre>';
		print_r($client->debug());
	echo '</pre>';
*/
 
	echo '<pre>';
	print_r($response);
	echo '</pre>';
 
	return $response;
}
 
function getStatesList( $countryID ){
	$client = new VoxAPIClient('http://www.voxbone.com/VoxAPI/services/VoxAPI?WSDL', true);
	$token = getToken();
	$request = new GetStatesListRequest($token);
	$request->setCountryID($countryID);
 
	$response =  $client->getStatesList($request);
	return $response;
}
//function ou on peut réupérer le prix des numéros virtuels de chaque pays
function getDIDGroupList( $countryID, $stateID=-1 ){
	$client = new VoxAPIClient('http://www.voxbone.com/VoxAPI/services/VoxAPI?wsdl', true);
	$token = getToken();
	$request = new GetDIDGroupListRequest($token);
	$request->setCountryID($countryID);
	$filter = new DIDGroupFilter();
	if( $stateID != -1 ){
		$filter->setStateID($stateID);
	}
	$filter->setHideEmpty(false);
	$request->setFilter($filter);
	$request->setType('GEOGRAPHIC');
 
	$geographic =  $client->getDIDGroupList($request);
 
	$request = new GetDIDGroupListRequest($token);
	$request->setCountryID($countryID);
	$filter = new DIDGroupFilter();
	if( $stateID != -1 ){
		$filter->setStateID($stateID);
	}
	$filter->setHideEmpty(false);
	$request->setFilter($filter);
	$request->setType('NATIONAL');
	$national =  $client->getDIDGroupList($request);
	if( is_array($national) and is_array($geographic) ){
      $response = array_merge($geographic, $national);
 
 }else if(!empty($national) and is_array($geographic)){
  $array= get_object_vars($national); 
 /* echo '<pre>';
 print_r($array);
 echo '</pre>';*/
  $response = array_merge($geographic,$array);
 
 }else if(!empty($national) and empty($geographic)){
  $response = $national;
 }else{
 $response = $geographic;
 }
 
	/*echo '<pre>';
	print_r($response);
	echo '</pre>';*/
 
	return $response;
}
 
function placeDIDsOrder( $didgroupID, $quantity ){
	$client = new VoxAPIClient('http://www.voxbone.com/VoxAPI/services/VoxAPI?WSDL', true);
	$token = getToken();
	$request = new PlaceDIDsOrderRequest($token);
	$request->setDIDGroupID($didgroupID);
	$request->setQuantity($quantity);
	$response =  $client->placeDIDsOrder($request);
	//print $client->debug();
	return $response;
}
 
?>
voici le code d'affichage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
 
$countriesList = getCountriesList();
 
echo '<table align="center" border="1">';
echo '<tr>';
echo '<td bgcolor="#0055FF" class=Style17>Country</td>';
echo '<td bgcolor="#0055FF" class=Style17>Price</td>';
echo '</tr>';
 
 
foreach( $countriesList as $country ){
 
$didgroupList = getDIDGroupList($country->CountryID);/*quand j'enléve cette partie il m'affiche plus lerreur et m'affiche toute la liste alors que j'en ai besoin pour récuperer le prix du numéro virtuel*/
foreach( $didgroupList as $didgroup ){
		 $pricing1 =$didgroup->Setup100/100;
		 $countryname=$didgroup->CountryName;
		}
echo'<tr>';
 
printf("<td bgcolor=#D0D0D0><input class=Style9 size=30 type=text name=number value=\"$country->CountryName\" readonly /></td>");
printf("<td bgcolor=#D0D0D0><input class=Style9 size=30 type=text name=number value=\"0  \" readonly /></td></tr>");
//$row = mysql_fetch_row($result);
 
}
 
echo'</table>';
?>
merci d'avance