This is the function you need if you are running into the infamous "must be superuser to COPY to or from a file" error from postgres.(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pg_put_line — Envoie une chaîne au serveur PostgreSQL
   pg_put_line() envoie une chaîne (terminée
   par null) au serveur PostgreSQL. Ceci est nécessaire en conjonction avec
   une commande COPY FROM PostgreSQL.
  
COPY est un chargement très rapide des données
   supporté par PostgreSQL. Les données sont passées sans être analysées et
   dans une simple transaction.
  
Une alternative plutôt que d'utiliser la commande brute pg_put_line() est d'utiliser pg_copy_from(). C'est une interface bien plus simple.
Note:
Notez que l'application doit explicitement ajouter les deux caractères "\." à la fin de la chaîne pour indiquer au serveur qu'elle a finit d'envoyer des données, avant d'appeler pg_end_copy().
L'utilisation de pg_put_line() cause sur la plupart des objets de grande taille à échouer, incluant pg_lo_read() et pg_lo_tell(). Vous pouvez utiliser pg_copy_from() et pg_copy_to() à la place.
connection
 Une instance PgSql\Connection.
 Quand connection est pas spécifié, la connexion par défaut est utilisé.
 La connexion par défaut est la dernière connexion faite par
 pg_connect() ou pg_pconnect()
 
À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.
data
       Une ligne de texte à envoyer directement au serveur PostgreSQL. Un
       caractère d'arrêt null est automatiquement ajouté.
      
| Version | Description | 
|---|---|
| 8.1.0 | Le paramètre connectionattend désormais une instance de
  PgSql\Connection ; auparavant, une resource était attendu. | 
Exemple #1 Exemple avec pg_put_line()
<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\tBonjour le monde\t4.5\n");
  pg_put_line($conn, "4\tAurevoir le monde\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>This is the function you need if you are running into the infamous "must be superuser to COPY to or from a file" error from postgres.When using this function, don't get bit by using 'literal\tanotherliteral\n' issue by using single quotes vs. double quotes.  "literal\tanotherliteral\n" is not the same.  Many of the functions are impacted on how double quotes treats escape characters different than single quotes.  I forget it all the time.