Sample code for 30+ languages & platforms
PHP Extension Requires Chilkat v11.0.0+

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 Extension
<?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:

?>