preg_replace champs "VIDE"

Nouveau WRInaute
Bonjour--

Je dois scanner des chaines de caractere provenant d'une base de donnée. Jusque la pas de probleme, en revanche certain champs ne sont pas remplis.
J'aimerais remplacer les champs vide par la chaine de caractere "VIDE"

je pensai à cela, mais .....

'affiliation' => $row_drop_item2 = preg_replace(' ', "VIDE", $row_drop_item['PR_URL_FR']),

cela ne fonctionne pas
pouvez vous me dire pourquoi ?
Merci à vous...
 
WRInaute passionné
Hello,
Bienvenue sur WRI

je pense qu'en faisant ça tu vas remplacer tous les " " par VIDE

Tu ne peux pas faire un truc du genre :

Code:
if ($row_drop_item['PR_URL_FR']) {
'affiliation' => $row_drop_item2 = preg_replace(' ', "VIDE", $row_drop_item['PR_URL_FR'])
}
else
{  'affiliation' => $row_drop_item2 = 'VIDE' ;}
 
Nouveau WRInaute
merci pour le bienvenue--


je suis dans un while qui n'aime pas des tonnes les if .....

while($row_drop_item = mysql_fetch_array($result_drop_item))
{
$items[] = array(
'id' => $row_drop_item['PR_ID'],
'nom' => $row_drop_item['PR_NAME_FR'],
'affiliation' => $row_drop_item = preg_replace(' ', "VIDE", $row_drop_item['PR_URL_FR']),
....
 
WRInaute passionné
oui je comprends

Une autre idée alors ;-)

si $row_drop_item['PR_URL_FR'] fait référence à un champs msql pourquoi ne pas lui attribuer par défaut la valeur 'VIDE' ?

Sinon ça m'intéresse aussi si on peut faire ça avec le preg_replace (parce que du coup ça me chatouille)
 
WRInaute passionné
Je ne comprend pas, si ta variable contient uniquement le champ vide ou rempli, pourquoi ne pas simplement contrôlé qu'elle soit vide ou non.

'affiliation' => $row_drop_item = empty(trim($row_drop_item['PR_URL_FR'])) ? 'VIDE' : $row_drop_item['PR_URL_FR'],
 
Nouveau WRInaute
parfois $row_drop_item['PR_URL_FR'] contient des URL qu'il faut afficher parfois, ce champs est vide. le fait d'être vide est super problématique pour la suite. c'est pour cette raison que j'aimerais mettre une chaine de caractère.

merci pour :
'affiliation' => $row_drop_item = empty(trim($row_drop_item['PR_AFFILIATION_URL_FR'])) ? 'VIDE' : $row_drop_item['PR_AFFILIATION_URL_FR'],

tu est certain de la synthaxe ?
 
Nouveau WRInaute
je pensais que nous pouvions remplacer un champs vide par une chaine de caractère avec la puissance de preg_replace ??
 
WRInaute passionné
ça revient au même que mon if en fait mais en plus concis :)

J'aurais appris quelque chose ;-)
 
WRInaute passionné
webmaster06 a dit:
je pensais que nous pouvions remplacer un champs vide par une chaine de caractère avec la puissance de preg_replace ??
Disons que dans ton cas précis, preg_replace n'est pas utile, autant directement contrôlé la chaîne, si c'est uniquement pour savoir si c'est vide ou non.

Et oui, sauf petite bourde, la syntaxe est la bonne.

Désolé, j'avais pas vu ton intervention druart, ceci étant, comme elle était dans un tableau, ta syntaxe ne marchait pas en soit. (il aurait fallu faire le "if" avant le tableau, puis insérer le résultat via la variable dans le tableau).
 
WRInaute passionné
@tonguide mais non tu n'as pas à être désolé au contraire j'ai appris quelque chose grâce à toi, et tu as raison pour l'histoire du tableau, personnellement moi je traiterais le cas avant de cette façon

@webmaster06 et bien ça faisait partie d'une possibilité de définir ce champ avec une valeur par Défaut = "VIDE"
dans ce cas soit ce champ est rempli avec une valeur insérée soit il contient la valeur "VIDE"
non ?
 
WRInaute accro
webmaster06 a dit:
je pensais que nous pouvions remplacer un champs vide par une chaine de caractère avec la puissance de preg_replace ??
oui, mais là tu ne l'utilisais que de façon basique.
Un champ vide avec les regex, se note
Code:
^$
 
WRInaute passionné
tu veux dire que :

Code:
preg_replace('^$', "VIDE", $row_drop_item['PR_URL_FR'])

ça fonctionne ? 8O
 
Nouveau WRInaute
Re: preg_replace champs "VIDE" -- Résolue --

Bingo !!

Je reste 8O par cette solution. En effet, cela Fonctionne.
Bravo ... Et merci c'est simple est élégant.
 
Discussions similaires
Haut