Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2007, 14h10   #1
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut Récuperer texte d'un fichier texte

Bonjour,

J'utilise un fichier .php qui a le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function multipart_name()
{
$text=array(
"<span class=\"voiture\">voiture</span>",
"<span class=\"moto\">moto</span>",
"<span class=\"camion\">camion</span>");
$num=rand(0, sizeof($text)-1 );
echo $text[$num];
}
multipart_name();
?>
Le mot en class permet de faire une ombre du mot dans le span.
Le problème est que de rajouter plusieurs lignes est long avec cette redite…

Est-il possible de mettre juste :
dans un fichier mot.txt
et d'appeller un mot de manière aléatoire pour le mettre comme suit :
Code :
1
2
3
4
5
6
7
8
9
10
<?php
function multipart_name()
{
$text=array(
"<span class=\"ALEA\">ALEA</span>");
$num=rand(0, sizeof($text)-1 );
echo $text[$num];
}
multipart_name();
?>
Merci de votre aide
  Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 14h22   #2
Membre éclairé
 
Avatar de alceste
 
Inscription : mars 2006
Messages : 318
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : mars 2006
Messages : 318
Points : 320
Points : 320
utilise la fonction file() avec la fonction count()
alceste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 14h22   #3
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 307
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 307
Points : 8 588
Points : 8 588
Une solution pourraît consister à lire tout le fichier d'un coup avec file_get_contents et d'appliquer un explode sur "\n" par exemple pour récupérer un tableau contenant toutes les lignes du fichier. Ensuite, tu fais ton truc aléatoire comme tu le fais déjà.

Juste comme ça : pourquoi avoir une classe "voiture", "moto", etc ? Pourquoi ne pas passer par une seule et même classe si le style appliqué est le même pour tous ?
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 15h51   #4
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Citation:
Envoyé par _Mac_ Voir le message
Juste comme ça : pourquoi avoir une classe "voiture", "moto", etc ? Pourquoi ne pas passer par une seule et même classe si le style appliqué est le même pour tous ?
Parce que j'ai mis le code CSS suivant :
Code :
1
2
3
4
5
6
7
span:after {
display:block;
margin-left:-2px;
margin-top:-55px;
content:attr(class);
color:white;
background-color:black;}

Merci pour les pistes, je vais regarder de ce coté, si j'ai des soucis, je reposterai.
  Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2007, 10h56   #5
Gunner4902
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Voici mon code :
Code :
1
2
3
4
5
6
7
<?php 
 
    $fichier = file("loc.php"); 
    $i = count($fichier); 
    $id = rand(0,$i-1); 
    echo "<span class=\"$fichier[$id]\">$fichier[$id]</span>";
 ?>
Reste un problème…

le code source de la page donnée est :


Code :
1
2
3
<span class="voiture
">voiture
</span>
Le problème c'est que j'ai ce retour à la ligne à chaque fois (qui désactive donc la valeur class…).

J'ai donc utilisé le flag , FILE_IGNORE_NEW_LINES.

Le code final donne donc :
Code :
1
2
3
4
5
6
<?php 
	$fichier = file("loc.php", FILE_IGNORE_NEW_LINES); 
	$i = count($fichier); 
	$id = rand(0,$i-1); 
	echo "<span class=\"$fichier[$id]\">$fichier[$id]</span>";
 ?>
Le code source devient donc :
Code :
<span class="voiture">voiture</span>
et l'on peut appliquer le CSS

Dernière modification par Gunner4902 ; 08/12/2007 à 11h37.
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Mettre Résolu
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h32.


 
 
 
 
Partenaires

Hébergement Web