Soucis avec une fonction PHP
Fermé
misterclic66
Messages postés
12
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
22 avril 2011
-
24 févr. 2011 à 12:04
misterclic66 Messages postés 12 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 22 avril 2011 - 25 févr. 2011 à 08:37
misterclic66 Messages postés 12 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 22 avril 2011 - 25 févr. 2011 à 08:37
A voir également:
- Soucis avec une fonction PHP
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
3 réponses
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
24 févr. 2011 à 12:30
24 févr. 2011 à 12:30
Vous pouvez indiquer à quelle ligne correspond la ligne 16 dans ta page?
misterclic66
Messages postés
12
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
22 avril 2011
24 févr. 2011 à 13:37
24 févr. 2011 à 13:37
La ligne 16 est
$cible = str_replace (strstr($la_balise_lien, '"'), '' , $cible, 1);
$cible = str_replace (strstr($la_balise_lien, '"'), '' , $cible, 1);
tito23
Messages postés
305
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
16 janvier 2013
4
24 févr. 2011 à 15:38
24 févr. 2011 à 15:38
ce code sert à supprimer la chaine qui commence avec '"' dans $la_balise_lien de la chaine $cible?
sinon pouvez vous éclaircir le but de votre code.
sinon pouvez vous éclaircir le but de votre code.
misterclic66
Messages postés
12
Date d'inscription
lundi 27 avril 2009
Statut
Membre
Dernière intervention
22 avril 2011
25 févr. 2011 à 08:37
25 févr. 2011 à 08:37
Voici une explication détaillée de ce que je veux fairedans cette fonction (n° de ligne = nb de lignes à partir de la déclaration function add_blank($html) qui est la ligne 1)
La variable $html est un texte saisi en HTML via un FCK Editor.
Il faut le traiter pour que toutes les balises <a href....> aient en sortie un attribut target="blank"
1 on crée un curseur ($curseur) qui détecte la présence de la séquence "<a " (début de la séquence d'une balise lien, l'espace sert à cerner uniquement les balises <a>, sans toucher les autres balises commençant par <a telles que <address>...
2 si on trouve cette séquence "<a ", alors la variable $la_balise_lien est la sous-chaine qui va de cette séquence jusqu'à ">" soit une balise lien ouvrante (L7), elle ne nous intéresse que si elle contient l'argument href= (L8) car les <a name....> ne sont pas concernés.
3 on s'interesse à la présence ou non de la séquence "target=" dans la variable $la_balise_lien
3.1 si tel n'est pas le cas, c'est simple, on remplace ">" par "target="_blank">" dans la variable $la_balise_lien
pour obtenir la variable $la_balise_modifiee et le tour est joué
3.2 s'il y a effectivement un attribut target, il faudra isoler sa valeur (la variable $cible) pour la remplacer par la chaine "_blank".
ce qui rend la chose complexe, c'est que la valeur de l'attribut target peut avoir été écrite dans le html original (souvent copié-collé par mon rédacteur) avec des " ", avec des ' ', ou avec rien du tout autour (pas propre mais on en trouve...) avec 2 sous-cas (fin de balise ou autres args après), d'ou quatre cas (L14, L19, L25, L27)
Dans ces 4 cas on modifie l'attribut target pour lui attribuer la valeur _blank, ce qui nos donne la variable $la_balise_modifiee
4 dans la variable $html on remplace la variable $la_balise_lien par la variable $la_balise_modifiee et on avance le curseur pour rechercher d'autres occurences de "<a "
l'erreur Fatal error: Only variables can be passed by reference in ... on line... correspond à la ligne 15 de la fonction.
Si qqn peut la corriger, voire l'améliorer car elle me paraît lente, je prends
Thx
La variable $html est un texte saisi en HTML via un FCK Editor.
Il faut le traiter pour que toutes les balises <a href....> aient en sortie un attribut target="blank"
1 on crée un curseur ($curseur) qui détecte la présence de la séquence "<a " (début de la séquence d'une balise lien, l'espace sert à cerner uniquement les balises <a>, sans toucher les autres balises commençant par <a telles que <address>...
2 si on trouve cette séquence "<a ", alors la variable $la_balise_lien est la sous-chaine qui va de cette séquence jusqu'à ">" soit une balise lien ouvrante (L7), elle ne nous intéresse que si elle contient l'argument href= (L8) car les <a name....> ne sont pas concernés.
3 on s'interesse à la présence ou non de la séquence "target=" dans la variable $la_balise_lien
3.1 si tel n'est pas le cas, c'est simple, on remplace ">" par "target="_blank">" dans la variable $la_balise_lien
pour obtenir la variable $la_balise_modifiee et le tour est joué
3.2 s'il y a effectivement un attribut target, il faudra isoler sa valeur (la variable $cible) pour la remplacer par la chaine "_blank".
ce qui rend la chose complexe, c'est que la valeur de l'attribut target peut avoir été écrite dans le html original (souvent copié-collé par mon rédacteur) avec des " ", avec des ' ', ou avec rien du tout autour (pas propre mais on en trouve...) avec 2 sous-cas (fin de balise ou autres args après), d'ou quatre cas (L14, L19, L25, L27)
Dans ces 4 cas on modifie l'attribut target pour lui attribuer la valeur _blank, ce qui nos donne la variable $la_balise_modifiee
4 dans la variable $html on remplace la variable $la_balise_lien par la variable $la_balise_modifiee et on avance le curseur pour rechercher d'autres occurences de "<a "
l'erreur Fatal error: Only variables can be passed by reference in ... on line... correspond à la ligne 15 de la fonction.
Si qqn peut la corriger, voire l'améliorer car elle me paraît lente, je prends
Thx