PHP Extension Requires Chilkat v11.0.0+
PHP Extension
SharePoint Get Files in Root Folder
See more SharePoint Examples
Gets the list of files that exist in the root folder.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$http = new CkHttp();
// --------------------------------------------------------------------------------------------------------
// Provide the information needed for Chilkat to automatically fetch the OAuth2.0 access token as needed.
// To create your App Registration for SharePoint in Azure Entra ID,
// see How to Create SharePoint App Registration for OAuth 2.0 Client Credentials
$jsonOAuthCC = new CkJsonObject();
$jsonOAuthCC->UpdateString('client_id','CLIENT_ID');
$jsonOAuthCC->UpdateString('client_secret','SECRET_VALUE');
$jsonOAuthCC->UpdateString('scope','https://graph.microsoft.com/.default');
$jsonOAuthCC->UpdateString('token_endpoint','https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token');
$http->put_AuthToken($jsonOAuthCC->emit());
// --------------------------------------------------------------------------------------------------------
// Indicate that we want a JSON reply
$http->put_Accept('application/json;odata=verbose');
$http->SetUrlVar('sharepoint_hostname','example.sharepoint.com');
$sbJson = new CkStringBuilder();
$success = $http->QuickGetSb('https://graph.microsoft.com/v1.0/sites/SITE_ID/drive/root/children',$sbJson);
if ($success == false) {
print $http->lastErrorText() . "\n";
exit;
}
$json = new CkJsonObject();
$json->LoadSb($sbJson);
// Iterate over the results and get each file's name, size, and last-modified date/time.
$numFiles = $json->SizeOfArray('d.results');
print 'Number of Files in the SharePoint root folder = ' . $numFiles . "\n";
$i = 0;
while ($i < $numFiles) {
$json->put_I($i);
$filename = $json->stringOf('d.results[i].Name');
$fileRelativeUri = $json->stringOf('d.results[i].ServerRelativeUrl');
$fileSize = $json->IntOf('d.results[i].Length');
print ($i + 1) . ': ' . $filename . "\n";
print ' Relative URI: ' . $fileRelativeUri . "\n";
print ' Size in Bytes: ' . $fileSize . "\n";
$i = $i + 1;
}
// The output of this program when I tested it:
?>