Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
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 26/02/2007, 18h14   #1
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
Par défaut Tout récupérer sauf les attributs alt= et title=

Bonjours

voilà, je voudrai faire un slip, donc il faut que je récupère tout sauf ce que je veux traiter,

j'aimerai savoir comment il été possible avec RegEx pour tout récupérer sauf (dans mon cas les attributs alt et title)

je vous remercie d'avance
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 18h57   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 570
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 570
Points : 2 506
Points : 2 506
Citation:
Envoyé par juJuv51
je voudrai faire un slip
?

Salut, tu veux traiter un document HTML complet ou juste des parties ?

Tu pourrais nous donner un petit exemple ?
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 19h14   #3
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
j'utilise se site:
http://www.manga-france.fr/

comme teste (toute la source HTML effectivement)

Code :
<img src="images/titre.png" alt="Manga France &#28459;&#30011;&#12501;&#12521;&#12531;&#12473;" title="Manga France &#28459;&#30011;&#12501;&#12521;&#12531;&#12473;" width="400" height="80" />
normale le contenu est en japonais (la parti déjà encodé)

c'est pour qu'avec le slip, je puisse tout (ce qui n'ai pas match par le RegEx) encodé en HTML
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 20h58   #4
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
lol, j'avais pas vue non c'est pas un SLIP que je veux faire, mais un SPLIT
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 22h19   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Un truc comme ça vous conviendrait-il :
Code :
1
2
3
4
<?php
$content = file_get_contents('http://www.manga-france.fr/'); # Requiert allow_url_fopen = On
echo preg_replace('/(?:alt|title)=(["\']).*?\1\s*/i', '', $content);
?>
?

Je pense que c'est pas plus difficile à faire avec une feuille XSL surtout si on veut se limiter aux balises img uniquement.


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 22h27   #6
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
merci, mais ce que je voudrais, c'est exactement l'inverse,
que tout soit sélectionné, sauf les attributs alt et title (si possible, qui sont dans des balises < >)
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2007, 23h55   #7
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
il n'y a pas possibilité de faire une sorte de reverse (l'inverse de ce que l'on veut)?
avec preg_split ou preg_match_all?
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 15h41   #8
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
c'est possible?
j'ai pas trouvé d'information permettant de faire une négation avec les RegEx, mais peut être cela existe t'il...
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h06   #9
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous en demandez trop aux expressions régulières Ce qui s'apparente le plus à une négation ce sont les assertions négatives avant et arrière mais impliquent certaines restrictions notamment au niveau de la capture (pour plus d'infos : Les expressions régulières en PHP).


Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h10   #10
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Il me semble qu'une forme de négation existe Mais je ne l'ai pas utilisé depuis longtemps et je ne me rappelle plus exactement ce qu'on peut en faire.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h12   #11
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par julp
Vous en demandez trop aux expressions régulières Ce qui s'apparente le plus à une négation ce sont les assertions négatives avant et arrière mais impliquent certaines restrictions notamment au niveau de la capture (pour plus d'infos : Les expressions régulières en PHP).


Julp.
Bah voilà, tout y est ! Et c'est effectivement pas exactement ce qu'il vous faut.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h14   #12
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Je n'ai rien compris. Le premier code de julp me paraîtrait bon.. mais apparemment non
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h21   #13
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Et un truc comme ça, ça peut pas le faire ?

Code :
1
2
3
4
5
6
7
8
<?php
$aFile = file('http://www.manga-france.fr/');
 
foreach ($aFile as $key => $value) {
    preg_replace('/(.*?)(?:alt|title)=(?:["\'].*?["\'])(.*)/i', '$1$2', $value);
    $aFile[$key] = $value;
}
?>
Reste ensuite à recracher le fichier qui est dans le tableau $aFile.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h23   #14
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par goodpz
Je n'ai rien compris. Le premier code de julp me paraîtrait bon.. mais apparemment non
Je ne suis pas sûr que cela faisait du remplacement multiple.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 16h30   #15
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Citation:
Et un truc comme ça, ça peut pas le faire ?
j'ai l'impression que c'est ce que le code de julp fait!
preg_replace fait du remplacement multiple
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 21h09   #16
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
je vous remercie pour votre aide, je ne sais toujours pas comment faire pour récupéré uniquement les informations dans les attributs alt ou title pour les encoder en htmlentites, je trouverais plus tard, je vous remercie quand même pour vos réponses
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 23h07   #17
Membre habitué
 
Avatar de daniel61
 
Inscription : décembre 2006
Messages : 109
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 109
Points : 120
Points : 120
Code :
1
2
3
4
5
6
7
8
$content = file_get_contents('http://www.manga-france.fr/'); # Requiert allow_url_fopen = On
//echo preg_replace('/(?:alt|title)=(["\']).*?\1\s*/i', '', $content);
// expression de julp
if(preg_match_all('/(?:alt|title)=(["\'])(.*?)\1\s*/i', $content, $textes)) {
  echo '<pre>';
  print_r($textes[2]);
  echo '</pre>';
}
daniel61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h41.


 
 
 
 
Partenaires

Hébergement Web