Accueil > Forum > > > > Enlever lignes vide HTML
Enlever lignes vide HTML
lundi 21 mars 2011 à 12:43:16 |
Enlever lignes vide HTML

raven44
|
Bonjour,
Voilà mon problème, j'ai un fichier php qui me génère du code xml et qui me l'affichage à la fin. Le code est bon, il n'y a pas de soucis la dessus.
Mon problème est qu'il y a 2 lignes vides avant la balise xml qui empeche l'affichage du xml.
Ces deux lignes vides sont provoqués par un require_once de mon fichier php ou se situe les infos de ma base de connexion qui utilise lui même une classe de connexion aux différentes BDD.
Car si je n'utilise pas cette classe et que je met directement mysql_connected, pas de soucis, ca fonctionne.
Il n'y a rien de particulier dans cette classe (voir ci-dessou), pas d'echo.
Code PHP : <?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Classe d'abstraction PHP5 de base de données, mysql et... */
/* */
/* URL : http://www.phpsources.org/scripts159-PHP.htm */
/* Auteur : Johan Barbier */
/* Date édition : 14-02-2006 */
/* */
/******************************************************************************/
class database {
/*******************************************************************
* Définition des Propriétés
*******************************************************************/
protected $config = array ();
private $errorLog = array ();
private $options = array (
'ERROR_DISPLAY' => true
);
protected $sql = '';
private $qryRes;
protected $link;
private $sQueryPerf = array ();
/*******************************************************************
* Constructeur
* On peut ou non passer le nom de la base de données;
si on le passe, la connexion à la base se fait d'elle même
* Sinon, il faudra passer par la méthode select_base ()
* @Param string $host => serveur de bdd
* @Param string $user => login
* @Param string $pwd => password
* @Param string $db => base de donnée
* @Param array $options => options (voir la propriété $config)
*******************************************************************/
public function __construct ($host, $user, $pwd, $db = '',
$options = array ()) {
$this -> config['HOST'] = $host;
$this -> config['USER'] = $user;
$this -> config['PWD'] = $pwd;
if (!empty ($options)) {
foreach ($options as $clef => $opt) {
if (array_key_exists ($clef, $this -> options)
&& is_bool ($opt)) {
$this -> options[$clef] = $opt;
}
}
}
if (!empty ($db)) {
$this -> connect ();
$this -> select_base ($db);
}
}
/*******************************************************************
* Méthode de connexion
* méthode publique
* Se fait automatiquement, ou peut être explicitement appelée
*******************************************************************/
public function connect () {
if (false === $this -> private_connect ()) {
$this -> error (get_class ($this).' :: connect()',
$this -> private_errno().' : '.$this -> private_error(),
'Connexion avec Host : '.$this -> config['HOST'].' User : '.
$this -> config['USER'].' Pwd : ********');
}
}
/*******************************************************************
* Méthode de log des erreurs
* méthode privée
* @Param string $func => méthode appelant l'erreur
* @Param string $err => message d'erreur interne au moteur de la bdd
* @Param string $qry => requête ayant provquée l'erreur,
ou message interne à la classe
*******************************************************************/
private function error ($func, $err, $qry) {
$this -> errorLog[] = $func.' : '.$err.' => '.$qry;
if ($this -> options['ERROR_DISPLAY'] === true) {
echo 'ERREUR! : ', $this -> errorLog[key ($this -> errorLog)],
'<br />';
}
}
/*******************************************************************
* Méthode de sélection d'une base de données
* méthode publique
* @Param string $name => nom de la base.
*******************************************************************/
public function select_base($name=null) {
if (false === is_scalar ($name)) {
$this -> error (get_class ($this).' :: select_base()',
$this -> private_errno().' : '.$this -> private_error(),
'Nom incorrect passé à la méthode : '.$name);
} else {
$this -> config['BD'] = $name;
if (false === $this -> private_select_base()) {
$this -> error (get_class ($this).' :: select_base()',
$this -> private_errno().' : '.$this -> private_error(),
'La méthode n\'a pu se connecter à la base : '.$name);
}
}
}
/*******************************************************************
* Méthode de fermeture de la connexion
* méthode publique
*******************************************************************/
public function close() {
$this -> __destruct ();
}
/*******************************************************************
* Destructeur
* méthode publique
*******************************************************************/
public function __destruct () {
if (isset($this-> link) ) {
$this -> private_close();
unset ($this-> link);
}
}
/*******************************************************************
* Méthode de "requêtage"
* méthode publique
* @Param string $qry => requête
*******************************************************************/
public function query ($qry) {
$this -> sql = $qry;
if (false === $this -> qryRes = $this -> private_query ()) {
$this -> error (get_class ($this).' :: query ()',
$this -> private_errno ().' : '.$this -> private_error (),
$this -> sql);
} else {
return $this -> qryRes;
}
}
/*******************************************************************
* Méthode pour compter le nombre de lignes renvoyées
* méthode publique
* @Param mixed $qry => ressource d'une requête ou identifiant
de ressource pour mssql
* On peut la passer explicitement, ou prendre la propriété
*******************************************************************/
public function num_rows ($qry = null) {
if ((get_class ($this) === 'mysql'
&& is_resource ($qry))
|| (get_class ($this) === 'mssql'
&& is_int ($qry))) {
$num = $this -> private_num_rows ($qry);
if (false === $num) {
$this -> error (get_class ($this).' :: num_rows ()',
$this -> private_errno ().' : '.$this -> private_error (),
$this -> sql);
return false;
} else {
return $num;
}
}elseif (isset ($this -> qryRes)
&& (get_class ($this) === 'mysql'
&& is_resource ($this -> qryRes))
|| (get_class ($this) === 'mssql'
&& is_int ($this -> qryRes))) {
$num = $this -> private_num_rows ($this -> qryRes);
if (false === $num) {
$this -> error (get_class ($this).' :: num_rows ()',
$this -> private_errno ().' : '.$this -> private_error (),
$this -> sql);
return false;
} else {
return $num;
}
} else {
$this -> error (get_class ($this).' :: num_rows ()',
$this -> private_errno ().' : '.$this -> private_error (),
'Pas de ressource valide');
}
}
/*******************************************************************
* Méthode pour parcourir les lignes renvoyée par ujne requête
sous forme de tableau associatif
* méthode publique
* @Param mixed $qry => ressource d'une requête ou identifiant
de ressource pour mssql
* On peut la passer explicitement, ou prendre la propriété
*******************************************************************/
public function fetch_assoc ($qry = null) {
if ((get_class ($this) === 'mysql'
&& is_resource ($qry))
|| (get_class ($this) === 'mssql'
&& is_int ($qry))) {
return $this -> private_fetch_assoc ($qry);
}elseif (isset ($this -> qryRes)
&& (get_class ($this) === 'mysql'
&& is_resource ($this -> qryRes))
|| (get_class ($this) === 'mssql'
&& is_int ($this -> qryRes))) {
return $this -> private_fetch_assoc ($this -> qryRes);
} else {
$this -> error (get_class ($this).' :: fetch_assoc ()',
$this -> private_errno ().' : '.$this -> private_error (),
'Pas de ressource valide');
}
}
/*******************************************************************
* Méthode pour parcourir les lignes renvoyée par ujne requête
sous forme de tableau associatif et numérique
* méthode publique
* @Param mixed $qry => ressource d'une requête ou identifiant
de ressource pour mssql
* On peut la passer explicitement, ou prendre la propriété
*******************************************************************/
public function fetch_array ($qry = null) {
if ((get_class ($this) === 'mysql'
&& is_resource ($qry))
|| (get_class ($this) === 'mssql'
&& is_int ($qry))) {
return $this -> private_fetch_array ($qry);
}elseif (isset ($this -> qryRes)
&& (get_class ($this) === 'mysql'
&& is_resource ($this -> qryRes))
|| (get_class ($this) === 'mssql'
&& is_int ($this -> qryRes))) {
return $this -> private_fetch_array ($this -> qryRes);
} else {
$this -> error (get_class ($this).' :: fetch_array ()',
$this -> private_errno ().' : '.$this -> private_error (),
'Pas de ressource valide');
}
}
/*******************************************************************
* Méthode pour parcourir les lignes renvoyée par ujne requête
sous forme de tableau numérique
* méthode publique
* @Param mixed $qry => ressource d'une requête ou identifiant
de ressource pour mssql
* On peut la passer explicitement, ou prendre la propriété
*******************************************************************/
public function fetch_row ($qry = null) {
if ((get_class ($this) === 'mysql'
&& is_resource ($qry))
|| (get_class ($this) === 'mssql'
&& is_int ($qry))) {
return $this -> private_fetch_row ($qry);
}elseif (isset ($this -> qryRes)
&& (get_class ($this) === 'mysql'
&& is_resource ($this -> qryRes))
|| (get_class ($this) === 'mssql'
&& is_int ($this -> qryRes))) {
return $this -> private_fetch_row ($this -> qryRes);
} else {
$this -> error (get_class ($this).' :: fetch_row ()',
$this -> private_errno ().' : '.$this -> private_error (),
'Pas de ressource valide');
}
}
/*******************************************************************
* Méthode renvoyant le dernier ID inséré
* méthode publique
*******************************************************************/
public function insert_id () {
if (isset ($this -> link)) {
$id = $this -> private_insert_id ();
} else {
$this -> error (get_class ($this).' :: insert_id ()',
$this -> private_errno ().' : '.$this -> private_error (),
'Pas de lien valide');
return false;
}
if (false === $id) {
$this -> error (get_class ($this).' :: insert_id ()',
$this -> private_errno ().' : '.$this -> private_error (),
'Echec de récupération
du dernier id inséré');
return false;
} else {
return $id;
}
}
/*******************************************************************
* Méthode pour récupérer la valeur d'une ou plusieurs propriété(s)
de la classe
* méthode publique
* On peut passer n'importe quel nombre de paramètres,
sous la forme de chaînes ayant pour valeur le nom d'une
* propriété EXISTANTE de la classe
*******************************************************************/
public function get () {
$aArgs = func_get_args();
foreach ($aArgs as $clef => $arg) {
if (isset ($this -> $arg)) {
$aRetour[$arg] = $this -> $arg;
}
}
if (isset ($aRetour) && is_array ($aRetour)) {
return $aRetour;
} else {
return false;
}
}
/*******************************************************************
* Méthode de "requêtage" renvoyant en plus les performances
de la requête (bench)
* méthode publique
* @Param string $qry => requête
*******************************************************************/
public function queryPerf ($qry) {
$this -> sql = $qry;
$start = microtime ();
$this -> qryRes = $this -> private_query ();
$stop = microtime ();
if (false === $this -> qryRes) {
$this -> error (get_class ($this).' :: query ()',
$this -> private_errno ().' : '.$this -> private_error (),
$this -> sql);
return false;
} else {
$elapsed = $stop - $start;
$clef = count ($this -> sQueryPerf);
$this -> sQueryPerf[$clef]['query'] = $this -> sql;
$this -> sQueryPerf[$clef]['time'] = $elapsed;
echo 'Query [', $this -> sQueryPerf[$clef]['query'], '] => ',
$this -> sQueryPerf[$clef]['time'], '<br />';
return $this -> qryRes;
}
}
}
?>
<?php
class mssql extends database {
protected function private_connect () {
if (false === $this -> link = @mssql_connect ($this -> config['HOST'],
$this -> config['USER'], $this -> config['PWD'])) {
return false;
} else {
return true;
}
}
protected function private_select_base () {
if (false === @mssql_select_db($this->config['BD'], $this->link)) {
return false;
} else {
return true;
}
}
protected function private_close() {
mssql_close($this-> link);
}
protected function private_query () {
return @mssql_query ($this -> sql, $this -> link);
}
protected function private_num_rows ($qry) {
return @mssql_num_rows ($qry);
}
protected function private_fetch_row ($qry) {
return @mssql_fetch_row ($qry);
}
protected function private_fetch_array ($qry) {
return @mssql_fetch_array ($qry);
}
protected function private_fetch_assoc ($qry) {
return @mssql_fetch_array ($qry);
}
protected function private_insert_id () {
$sQuery = 'SELECT @@IDENTITY';
$requete = $this -> query ($sQuery);
$res = $this -> fetch_row ($requete);
return $res[0];
}
protected function private_errno () {
return false;
}
protected function private_error () {
return @mssql_get_last_message ();
}
}
?>
<?php
class mysql extends database {
protected function private_connect () {
if (false === $this -> link = @mysql_connect ($this -> config['HOST'],
$this -> config['USER'], $this -> config['PWD'])) {
return false;
} else {
return true;
}
}
protected function private_select_base () {
if (false === @mysql_select_db($this->config['BD'], $this->link)) {
return false;
} else {
return true;
}
}
protected function private_close() {
mysql_close($this-> link);
}
protected function private_query () {
return @mysql_query ($this -> sql, $this -> link);
}
protected function private_num_rows ($qry) {
return @mysql_num_rows ($qry);
}
protected function private_fetch_assoc ($qry) {
return @mysql_fetch_assoc ($qry);
}
protected function private_fetch_array ($qry) {
return @mysql_fetch_array ($qry);
}
protected function private_fetch_row ($qry) {
return @mysql_fetch_row ($qry);
}
protected function private_insert_id () {
return @mysql_insert_id ($this -> link);
}
protected function private_errno () {
return @mysql_errno ($this -> link);
}
protected function private_error () {
return @mysql_error ($this -> link);
}
}
?>
|
|
mardi 22 mars 2011 à 12:45:15 |
Re : Enlever lignes vide HTML

007Julien
|
Les lignes séparant la classe et son extension (collée deux fois) avec interruption du php, seraient-elles en cause ?
Code PHP : ?>
<?php
class mysql extends database {
|
|
Cette discussion est classée dans : function, private, return, get, qry
Répondre à ce message
Sujets en rapport avec ce message
Update mysql impossible [ par SpaceHam ]
J'essaie via mysql (j'utilise le mysqli) d'updater ma table mais sans résultat. Je me suis tout de même basé sur une table utilisateur auquel j'update
Class Olivier extends Human [ par neigedhiver ]
[code=php]<?php /* * Copyright (C) 2010 - Neigedhiver * * This program is free software: you can redistribute it and/or modify * it under the term
Insert et classe [ par nagrom_om ]
J ai créé une classe conge. La méthode select marche bien mais je n arrive pas à rédiger l'insert :class CConges{ var $m_pt; var $m_numeroConge =
Instancier une classe PHP5 dans un tableau Multidimensionnel [ par critters ]
Salut tout le monde, dans le cadre d'un stage je dois faire un agenda qui s'alimente directement à partir d'une base de données contenant des interven
le début d'un formulaire un peu spécial [ par craso ]
bonjour,il s'agit de la classe d'un formulaire validé par un input type=image, avec pour le moment une option : se déplacer ou combattre. Lorsque la b
Classe PHP et variable d'instance [ par p0236 ]
Bonjour à tous, J'utilise une classe Produit dans laquelle il y a une VI qui est un objet d'une autre classe.Est ce que cela est possible? Si oui, y a
Besoin d'analyse critique [ par zzzzzz ]
Yop,J'aurai besoin d'avis critique concernant une classe de connection mysql. Eventuel bugs/failles et idées pour la développer d'avantage.Voici la cl
Bug dans la fonction get_defined_function( ) [ par Calak ]
Bonjour Hier, en regardant le résultat d'un get_defined_function() de ma config, je suis tombé sur un truc assez bizard: Est-ce normal, lorsque je fai
demande d'information [ par benyouness ]
bonjour tlsj ai organisé klk class et sa mache bien en local( easyphp 3.0 )require_once("BDG.class.php"); class BDMySQL extends BDG{ protected fu
function get_called_class() [ par tafsne ]
salutj'ai essayé la fonction get_called_class() en php5 avec non éditeur zend et easy php 2.0 béta mé sa ne marche passvp si vous pouvez m'aider
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|