Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 15/06/2011, 17h08   #1
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 68
Points : 11
Points : 11
Par défaut Récupération de "morceaux" d'une chaîne de caracatères.

Bonjour à tous,

Sur mon blog je gère mes articles via un wysiwyg. J'enregistre le contenu dans ma base MySQL. Mes articles peuvent être formés n'importe comment c'est à dire tout d'abord une photo puis du texte ou bien du texte puis une photo, etc.

Bon but est de, peu importe la mise en page de l'article j'aimerais, récupérer la première image qui apparaît dans l'article ainsi que le premier paragraphe par exemple.

Tout ceci dans le but de pouvoir afficher sur mon index un condensé des 5 dernières news par exemple.

Je n'ai pas de soucis pour récupérer l'article mais voilà je bloque dans l'idée de créer ces fonctions et quelle méthode utiliser.

Merci beaucoup de votre aide et de vos réponses

Bonne fin de journée
Tobear91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h44   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Hello

En suposant que ton article contienne au moins une balise <p> et une balise <img>:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
// Données de test
$article = <<< HTML
<p>Say hello to peter</p>
<img src="xxx" />
<img src="yyy" />
<p>Say hello to another peter</p>
HTML;
 
$doc = new DOMDocument;
$doc->loadHTML($article);
 
if ($paragraph = $doc->getElementsByTagName('p')->item(0))
  echo $paragraph->nodeValue;
 
if ($image = $doc->getElementsByTagName('img')->item(0))
  echo '<img src="' . $image->getAttribute('src') . '" />';
*

Enjoy
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 17h21   #3
Candidat au titre de Membre du Club
 
Inscription : février 2011
Messages : 68
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 68
Points : 11
Points : 11
Merci c'est exactement ca qu'il me faut mais après de multiples test je n'arrive pas a isoler mon premier paragraphe par exemple.

Petite précision avec le wysiwyg quand j'enregistre un texte il est formaté en paragraphe.

Code :
1
2
3
4
 
<p><img ...></p>
<p>...</p>
<p>...</p>
Lorsque je fais un petit bout de code comme ceci je récupère la totalité de mon article

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
 
$article_temp = Article::RemplirCollection();
foreach($article_temp as $article) {
	$getArticle = $article->getContenu();
	$doc = new DOMDocument;
	$doc->loadHTML($getArticle);
 
	if ($paragraph = $doc->getElementsByTagName('p')->item(0))
		echo $paragraph->nodeValue;
}
 
?>
Je ne connais pas du tout la class DOMDocument. Il y a peut être quelque chose au niveau de ca.

Merci de votre aide
Tobear91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h19.


 
 
 
 
Partenaires

Hébergement Web