Utilisation de la mémoire
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:
Citation:
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:
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:
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