Rechercher : dans
Par :

Ftp en php caracteres speciaux

Dernière réponse le 9 jan 2009 à 13:16:28 Mj7, le 9 jan 2009 à 12:33:45 
 Signaler ce message aux modérateurs

Bonjour,


j utilise un ftp pour modifier les textes d un xml en ligne.

le probleme c est que cette application ne gere pas les caracteres speciaux

é donne é

comment regler ce probleme ?

Configuration: Windows XP
Firefox 3.0.5

Meilleures réponses pour « ftp en php caracteres speciaux » dans :
[CCM] Utiliser des caractères spéciaux VoirVous pouvez utiliser des caractères spéciaux dans vos messages sur les forums de CCM. Vous pouvez: Soit utiliser la table de caractères Windows (charmap.exe) et copier-coller les caractères dans le message. Soit utiliser les entités...
Oracle - Echappement de caractères spéciaux VoirPour certaines requêtes SQL, nous avons besoin de rechercher des chaînes de caractères contenant des caractères spéciaux tels que '%' Dans l'exemple suivant, qui est faux, le besoin est de trouver les enregistrements contenant au milieu le...
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

Estydral, le 9 jan 2009 à 12:41:28

Bonjour,

La fonction htmlentities($texte) devrait pouvoir résoudre tes problèmes :)

Répondre à Estydral

2

Mj7, le 9 jan 2009 à 12:53:47

Bonjour,

je viens d essayer $txt = htmlentities($txt);


mais l affichage de ma page xml en line é donne toujours é

et si j essaye de faire un modification,

c est un carré qui est a la place du é

une idée ?

je vais envoyer mon script peut etre y cerrais vous plus clair :)

Répondre à Mj7

3

Mj7, le 9 jan 2009 à 12:55:13

<?php

$txt = htmlentities($txt);

$cheminimages = './fichiers_systeme';

$ordretri = '0'; // 0 pour l'affichage par type de fichier, 1 pour l'ordre alphabétique





$suppressioncomplete = true;

function supprimer_rep ($dir) { // fonction pour supprimer un ou plusieurs repertoires et tout ce qu'il y a dedans
if (file_exists ($dir)) {
$dh = opendir ($dir);
while (($file = readdir ($dh)) !== false ) {
if ($file !== '.' && $file !== '..') {
if (is_dir ($dir.'/'.$file)) {
supprimer_rep ($dir.'/'.$file); // si on trouve un repertoire, on fait un appel recursif pour fouiller ce repertoire
}
else {
if (file_exists ($dir.'/'.$file)) {
unlink ($dir.'/'.$file); // si on trouve un fichier, on le supprime
}
}
}
}
closedir ($dh);
if (is_dir ($dir)) {
rmdir ($dir); // on supprime le repertoire courant
}
return true;
}
}



function cmp($ar1, $ar2){

global $ordretri;

if($ordretri == 0){
$key1 = 0;
$key2 = 1;
}
else{
$key1 = 1;
$key2 = 0;
}

if(strtoupper($ar1[$key1]) > strtoupper($ar2[$key1])){
return 1;
}
elseif(strtoupper($ar1[$key1]) === strtoupper($ar2[$key1])){

if(strtoupper($ar1[$key2]) > strtoupper($ar2[$key2])){
return 1;
}
else {
return -1;
}

}
else {
return -1;
}
}

function tri($array){

usort($array, 'cmp');
return $array;
}



function ftphp(){

global $cheminimages;


$dossier='.';
if(isset($_GET['dossier'])){
$dossier = stripslashes($_GET['dossier']);
if(!is_dir($dossier)){
$dossier = '.';
}
}
if(!isset($_GET['dossier2'])){

$handle = opendir($dossier);

$fichier = array();

while (false!==($file = readdir($handle))) {

if(!in_array($file, array('.'))){

$ext_fichier = substr(strrchr($file, '.'), 1);

if($dossier.'/'.$file != './..' and !is_file($dossier.'/'.$file)) {
$file = '/'.$file;
}

if($dossier.'/'.$file != './..'){
array_push($fichier, array(strtolower($ext_fichier), $file));
}
}
}


closedir($handle);


$fichier = tri($fichier); //si l'on préfère classer les résultats par ordre alphabétique plutôt que par type de fichiers, il suffit de remplacer 1 par 0

foreach($fichier as $value){

if(ereg ('/', $value[1])){
$value[1] = str_replace ('/', '', $value[1]);
if($value[1] == '..'){
if($dossier != '.'){
$dossierprecedent = str_replace(strrchr($dossier, '/'), '', $dossier);
echo '<img src="./fichiers_systeme/dossier.jpg"><a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossierprecedent).'"> '.$value[1].'</a><br />';
}
}
else {
echo '<img src="./fichiers_systeme/dossier.jpg"><a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier.'/'.$value[1]).'"> '.$value[1].'</a><br />';
}
}
else {

if((in_array($value[0], array('htm', 'html'))) and is_file($cheminimages.'/htm.jpg')){ echo '<img src="'.$cheminimages.'/htm.jpg"> ';}
if((in_array($value[0], array('gif', 'jpg', 'jpeg', 'bmp'))) and is_file($cheminimages.'/img.jpg')){ echo '<img src="'.$cheminimages.'/img.jpg"> ';}
if((in_array($value[0], array('php', 'php3'))) and is_file($cheminimages.'/php.jpg')){ echo'<img src="'.$cheminimages.'/php.jpg"> ';}
if($value[0]=='css' and is_file($cheminimages.'/css.jpg')){ echo '<img src="'.$cheminimages.'/css.jpg"> ';}

echo '<a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($value[1]).'&dossier2='.urlencode($dossier).'&action=sommaire"> '.$value[1].'</a><br />';
}
}


echo '<br /><br /><table border="0" cellspacing="0" cellpadding="0"><tr><td>
<form action="'.$_SERVER['PHP_SELF'].'?fichier=aucun&dossier2='.urlencode($dossier).'&action=creerdossier" method="post">
<input type="submit" value="Créer un nouveau dossier ici">

</td></form></tr><tr><td>

<form action="'.$_SERVER['PHP_SELF'].'?fichier=aucun&dossier2='.urlencode($dossier).'&action=renommerdossier" method="post">
<input type="submit" value="Renommer ce dossier">

</td></form></tr><tr><td>

<form action="'.$_SERVER['PHP_SELF'].'?fichier=aucun&dossier2='.urlencode($dossier).'&action=uploader" method="post">
<input type="submit" value="Ajouter des fichiers ici">

</td></form></tr><tr><td>

<form action="'.$_SERVER['PHP_SELF'].'?fichier=aucun&dossier2='.urlencode($dossier).'&action=supprimerdossier" method="post">
<input type="submit" value="Supprimer ce dossier" style="color:#ff0000" onclick="return confirm(\'Supprimer l\\\'intégralité du dossier?\');">

</td></form></tr></table>';
}
else {
$dossier = stripslashes($_GET['dossier2']);

//initialisation des variables
$cible=0;
$fichier='';
if(isset($_GET['fichier'])){ $fichier = $_GET['fichier'];}
$action='';
if(isset($_GET['action'])){ $action = $_GET['action'];}
if(isset($_POST['cible'])){ $cible = stripslashes($_POST['cible']);}

//actions selon la demande precisée dans l'url

//sommaire: affichage des differentes actions possibles pour le fichier
if($action == 'sommaire'){
if(is_file($dossier.'/'.$fichier)){

$adresse = (str_replace('bzzz', '/', rawurlencode(str_replace('/', 'bzzz', $dossier.'/'.$fichier)))); //astuce pour bien encoder l'adresse de l'iframe, je ne m'en sortais pas avec les méthodes classiques

echo '<table border="1" cellpadding="2" width="410"><tr><td colspan="2">Fichier: <b>'.$fichier.'</b></td></tr>
<tr><td rowspan="6"><iframe src="'.$adresse.'"></iframe></td>';

echo '
<td><a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($fichier).'&dossier2='.urlencode($dossier).'&action=supprimer" onclick="return confirm(\'Supprimer le fichier?\');">
supprimer</a></td></tr>
<tr><td><a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($fichier).'&dossier2='.urlencode($dossier).'&action=copier">
copier</a></td></tr>
<tr><td><a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($fichier).'&dossier2='.urlencode($dossier).'&action=deplacer">
deplacer</a></td></tr>
<tr><td><a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($fichier).'&dossier2='.urlencode($dossier).'&action=renommer">
renommer</a></td></tr>
<tr><td><a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($fichier).'&dossier2='.urlencode($dossier).'&action=telecharger">
telecharger</a></td></tr>
<tr><td><a href="'.$_SERVER['PHP_SELF'].'?fichier='.urlencode($fichier).'&dossier2='.urlencode($dossier).'&action=modifier">
modifier</a></td></tr></table>';
}
else {
echo 'Ce fichier n\'existe pas.';
}
}

//action supprimer demandée
if($action == 'supprimer'){
if(is_file($dossier.'/'.$fichier)){
unlink($dossier.'/'.$fichier);
echo 'Le fichier a bien été supprimé.<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
else {
echo 'Le fichier n\'a pas été trouvé. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}



//action copier demandée
if($action == 'copier'){
if(is_file($dossier.'/'.$fichier)){

echo 'Choissez le dossier cible:
<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&fichier='.urlencode($fichier).'&action=copier1" method="post">
<input type="text" size="20" name="cible" value="..">
<input type="submit" value="copier"></form>';

}
else {
echo 'Ce fichier n\'existe pas. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}


//action copier1 demandée (suite de copier)
if($action == 'copier1'){
if(is_file($dossier.'/'.$fichier)){
copy($dossier.'/'.$fichier, $cible.'/'.$fichier);
echo 'Le fichier a bien été copié. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($cible).'">Revenir au dossier</a>';
}
else {
echo 'Ce fichier n\'existe pas. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}

// action deplacer demandée
if($action == 'deplacer'){
if(is_file($dossier.'/'.$fichier)){
echo 'Choisissez le dossier cible:
<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&fichier='.urlencode($fichier).'&action=deplacer1" method="post">
<input type="text" size"20" name="cible" value="..">
<input type="submit" value="deplacer"></form>';
}
else {
echo 'Ce fichier n\'existe pas. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}


//action deplacer1 demandée (suite de deplacer)
if($action == 'deplacer1'){
if(is_file($dossier.'/'.$fichier)){
rename($dossier.'/'.$fichier, $cible.'/'.$fichier);
echo 'Le fichier a bien été déplacé. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($cible).'">Revenir au dossier</a>';
}
else {
echo 'Ce fichier n\'existe pas. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}

//action renommer demandée
if($action == 'renommer'){
if(is_file($dossier.'/'.$fichier)){

echo 'Choisissez le nouveau nom :
<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&fichier='.urlencode($fichier).'&action=renommer1" method="post">
<input type="text" size"20" name="cible" value="'.$fichier.'">
<input type="submit" value="renommer"></form>';
}
else {
echo 'Ce fichier n\'existe pas. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}

//action renommer1 demandée (suite de renommer)
if($action == 'renommer1'){
if(is_file($dossier.'/'.$fichier)){

rename($dossier.'/'.$fichier, $dossier.'/'.$cible);
echo 'Le fichier a bien été renommé.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
else {
echo 'Ce fichier n\'existe pas. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}

//action telecharger demandée
if($action == 'telecharger'){

echo '
<script language="javascript">
w = window.open("ftphp.php","Telechargement","location=no,width=40,height=40,toolbar=no,scrollbars=no,resizable=no");
w.parent.location.href="ftphp.php?dossier2='.$dossier.'&fichier='.$fichier.'&action=telecharger1";
</script>
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';

}

if($action == 'telecharger1'){
header('Content-disposition: attachment; filename='.$fichier);
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: fichier');
header('Content-Length: '.filesize($dossier.'/'.$fichier));
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($dossier.'/'.$fichier);
}

//action modifier demandée
if($action == 'modifier'){
if(is_file($dossier.'/'.$fichier)){
$fp = fopen($dossier.'/'.$fichier, 'r+');
$contenu = fread($fp,5000000);
$contenu = str_replace('</textarea>', '/textarea', $contenu);
echo '
<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&fichier='.urlencode($fichier).'&action=modifier1" method="post">
<textarea rows="20" cols="49" name="cible">'.$contenu.'</textarea><br>
<input type="hidden" name="fp" value="'.$fp.'">';

echo '
<input type="submit" value="modifier">
<input type="reset" value="annuler les modifs">
</form>';

}
else {
echo 'Ce fichier n\'existe pas.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}

}

//action modifier1 demandée (suite de modifier)
if($action == 'modifier1'){
if(is_file($dossier.'/'.$fichier)){
$fp = fopen($dossier.'/'.$fichier, 'w+');
$cible = str_replace('/textarea', '</textarea>', $cible);
fputs($fp, $cible);
fclose($fp);
echo 'Le fichier a bien été modifié.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
else {
echo 'Ce fichier n\'existe pas.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}

//action creerdossier demandée
if($action == 'creerdossier'){
echo 'Tapez le nom du dossier:
<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&action=creerdossier1" method="post">
<input type="text" size"20" name="cible">
<input type="submit" value="creer"></form>';
}

//action creerdossier1 demandée (suite de creerdossier)
if($action == 'creerdossier1'){
if(is_dir($dossier) and !is_dir($dossier.'/'.$cible)){
mkdir($dossier.'/'.$cible, 0777);
echo 'Dossier créé. <a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
else {
echo 'Ce dossier existe déjà.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}


//action renommerdossier demandée
if($action == 'renommerdossier'){
$anciennom = substr(strrchr($dossier, '/'), 1);
echo 'Tapez le nouveau nom du dossier:
<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&action=renommerdossier1" method="post">
<input type="text" size"20" name="cible" value="'.$anciennom.'">
<input type="submit" value="Renommer"></form>';
}

//action renommerdossier1 demandée (suite de renommerdossier)
if($action == 'renommerdossier1'){
if(!is_dir($dossier.'/'.$cible)){
$dossierprecedent = explode('/', $dossier);
$nb = count($dossierprecedent);
$dossierprec = $dossierprecedent[0];
for ($i = 1; $i < $nb-1; $i++){
$dossierprec .= '/'.$dossierprecedent[$i];
}

rename ($dossier, $dossierprec.'/'.$cible);
echo 'Dossier renommé.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossierprec).'/'.urlencode($cible).'">Revenir au dossier</a>';
}
else {
echo 'Il existe déjà un dossier portant ce nom.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';
}
}

//action supprimerdossier demandée
if($action == 'supprimerdossier'){
supprimer_rep ($dossier);
echo 'Le dossier a été supprimé.
<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'">Revenir au dossier</a>';

}

//action uploader demandee
if($action == 'uploader'){

echo '<form action="'.$_SERVER['PHP_SELF'].'?dossier2='.urlencode($dossier).'&action=uploader1" method="post" enctype="multipart/form-data">';
echo '<table><tr><td>';

for ($i = 1; $i < 11; $i++){
echo '<input type="file" name="'.$i.'"><br>';
}

echo '</td><td>';

for ($i = 11; $i < 21; $i++){
echo '<input type="file" name="'.$i.'"><br>';
}

echo '</td></tr></table>';
echo '<input type="submit" value="uploader"></form>';
}

//action uploader1 demandée (suite de uploader)
if($action == 'uploader1'){
for($i=1;$i!=21;$i++){
if(!empty($_FILES[$i]['name'])){
$nom_destination = $_FILES[$i]['name'];
$nom_fichier = $_FILES[$i]['tmp_name'];
$poidsFichier = $_FILES[$i]['size'] ;

if($poidsFichier<100000000){ // taille max du fichier : vaut ici 100 Mo pour l'exemple

$page = explode('.', $nom_destination);
$nb = count($page);
if(copy($nom_fichier, $dossier.'/'.$nom_destination)){
echo $_FILES[$i]['name'].' : fichier envoyé.<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'"> Revenir au dossier</a><br />';
}
else {
echo $nom_destination.' : erreur dans l\'envoi du fichier.<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'"> Revenir au dossier</a><br />';
}
}
else {
echo $nom_destination.' : le fichier dépasse la taille maximale autorisée.<a href="'.$_SERVER['PHP_SELF'].'?dossier='.urlencode($dossier).'"> Revenir au dossier</a><br />';
}
}
}
}
}
}

ftphp();

?>

Répondre à Mj7

4

Estydral, le 9 jan 2009 à 12:55:34

Ta variable $txt doit correspondre à ton texte à convertir:

$txt = "Caractères spéciaux €";
$txt = htmlentities($txt);

Voilou!

Répondre à Estydral

5

 Mj7, le 9 jan 2009 à 13:16:28

Alors


en rajoutant header('Content-type: text/html; charset=UTF-8');

je n ai plus de problemes de modification en ligne :)

mais (evidement) a present j ai des erreures d ecriture sue la page php elle meme

été donne �t�

je brule...

Répondre à Mj7
Collection CommentÇaMarche.net