Morceaux de scripts PHP bien utiles, participez ;)

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3326
Inscription: Mar Nov 16, 2004 18:27

Message le Mer Sep 06, 2006 17:54

>> c'est juste que sur les forums de developpez.net ca avait bien marché et il y avait des fonctions très intéressantes.

re dslé, l'idée est en trés interressante et je compte suivre ce thread !! Je ne savais qu'il y aurait un sommaire mise a jour régulièrement. Le problème pour toi sera de voir quel bout de code tu crédites. Car deja celui ci est obsolète : -http://www.webrankinfo.com/forums/viewtopic_58093.htm#558662
puisqu'il peut s'ecrire en 1 ligne comme je l'indique precedement. Je te laisse juge et te souhaite bonne route !!


sunflower
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 121
Inscription: Jeu Jan 05, 2006 20:09

créer et forcer le download d'un iso (suppose serveur linux)

Message le Jeu Sep 07, 2006 13:19

Ca présuppose la création d'une arborescence de fichiers qui servira à la création de l'iso sur le filesystem. Dans mon cas les données sont majoritairement des symlink() dans le répertoire temporaire où l'iso est contruit, pour éviter des copies de fichiers (répertoire temporaire créé unique, avec un partie sortant de uniqid() par exemple, du genre $nomCD = uniqid('moncd_tmp_')).

Il faut mkisofs sur le serveur. Le CD créé est hybride rockridge/joliet, les éléments AUTORUN.inf et .exe sont cachés sous macOS et les applis mac (index.macapp et Demarrer - pour exemple) sont cachés sous windows

$nom_joli est le nom sous lequel l'image apparaîtra lors du download

Code: Tout sélectionner
function creerEtTélechargerIso($nomCD,$nom_joli){
          exec('mkisofs -f -J -R -hfs -hide-hfs AUTORUN.INF -hide-hfs "*.exe" -hide-joliet Demarrer -hide-joliet index.macapp -allow-leading-dots -o /tmp/'.$nomCD.'.iso /tmp/'.$nomCD);

          header('Content-Type: application/force-download');
          header("Content-Disposition: filename=".str_replace(" ","_",$nom_joli).".iso;");
          header("Content-Transfer-Encoding: binary");
          header("Content-Length: ".filesize("/var/www/tmp/".$nomCD.".iso"));
          readfile("/tmp/".$nomCD.".iso");
          exec("rm -f /tmp/".$nomCD.".iso");
          exec("rm -rf /tmp/".$nomCD);
}

Ca marche de la même manière pour créer des zip à télécharger directement (changer les ".iso" en ".zip", remplacer mkisofs par un truc comme "cd /tmp/$nomCD; zip -rq 0 ../$nomCD.zip *", penser à l'option "déréférencer les symlinks" si ce n'est pas le comportement par défaut.
(et si c'est gros, penser à set_time_limit(0); pour ne pas échouer du fait du dépassement le temps max d'exécution php)


mowmow
WRInaute passionné
WRInaute passionné
 
Messages: 975
Inscription: Mer Nov 03, 2004 9:40

Message le Sam Sep 09, 2006 8:40

KOogar a écrit:>> c'est juste que sur les forums de developpez.net ca avait bien marché et il y avait des fonctions très intéressantes.

re dslé, l'idée est en trés interressante et je compte suivre ce thread !! Je ne savais qu'il y aurait un sommaire mise a jour régulièrement. Le problème pour toi sera de voir quel bout de code tu crédites. Car deja celui ci est obsolète : -http://www.webrankinfo.com/forums/viewtopic_58093.htm#558662
puisqu'il peut s'ecrire en 1 ligne comme je l'indique precedement. Je te laisse juge et te souhaite bonne route !!


Autant pour moi, je n'avais pas vraiment fait attention à cette fonction.

a455bcd9
Nouveau WRInaute
 
Messages: 3
Inscription: Dim Jan 14, 2007 16:37

Message le Dim Jan 14, 2007 16:56

magic corp. a écrit:Fonction de mise en forme de texte pour utilisation dans une URL (Par exemple pour de l'URL Rewriting)
Code: Tout sélectionner
...


Bonjour, j'ai essayé d'utiliser ce code mais voilà le résultat (en bas de page) :
http://www.virtual-games.org/v3/tests.php?id=1
Code: Tout sélectionner
Fatal error: Cannot redeclare convert_for_uri() (previously declared in /home.10.3/virtualg/www/v3/tests.php:46) in /home.10.3/virtualg/www/v3/tests.php on line 46


Voici mon code complet :
Code: Tout sélectionner
<?php require("config.inc.php");
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM images LEFT JOIN jeux ON images.id_jeu = jeux.id WHERE id_article = '$id' AND type = 'vg'");

while($donnees = mysql_fetch_array($sql))
{

$support = $donnees['support'];

function convert_for_uri($support) {
  // Définition du séparateur
  define("SEPARATOR", "-");

  $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées
  $replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalant non accentué

  // Mise en minuscule + suppression des lettres accentuées par leur équivalant non accentué
  $support = strtr(strtolower($support),$tofind,$replac);

  // Remplacement de caractère non alphanumérique par un séparateur
  $support = ereg_replace("[^a-z0-9]", SEPARATOR, $support);

  // Suppression des doubles séparateurs
  while (strstr($support, SEPARATOR . SEPARATOR))
    $support = str_replace(SEPARATOR . SEPARATOR, SEPARATOR, $support);

  // Retour avec suppression d’un possible séparateur en fin de chaîne
  return(ereg_replace(SEPARATOR . "$", "", $support));
}

?>
<img src="images_jeux/<?php echo $support ?>/<?php echo $donnees['id_jeu'] ?>/<?php echo $donnees['id_image'] ?>.gif" />
<?php } mysql_close(); ?>


Le mot qu'il faut mettre en force est : Xbox 360 .

Avez vous une idée du problème ?

Merci beaucoup, a455bcd9

magic corp.
WRInaute impliqué
WRInaute impliqué
 
Messages: 425
Inscription: Jeu Juin 17, 2004 9:56

Message le Dim Jan 14, 2007 17:05

Je pense que ça vien du faite que tu déclares la fonction dans une boucle ...

Est ce mieux comme ça :
Code: Tout sélectionner
<?php require("config.inc.php");

function convert_for_uri($support) {
  // Définition du séparateur
  define("SEPARATOR", "-");

  $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées
  $replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalant non accentué

  // Mise en minuscule + suppression des lettres accentuées par leur équivalant non accentué
  $support = strtr(strtolower($support),$tofind,$replac);

  // Remplacement de caractère non alphanumérique par un séparateur
  $support = ereg_replace("[^a-z0-9]", SEPARATOR, $support);

  // Suppression des doubles séparateurs
  while (strstr($support, SEPARATOR . SEPARATOR))
    $support = str_replace(SEPARATOR . SEPARATOR, SEPARATOR, $support);

  // Retour avec suppression d’un possible séparateur en fin de chaîne
  return(ereg_replace(SEPARATOR . "$", "", $support));
}

mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM images LEFT JOIN jeux ON images.id_jeu = jeux.id WHERE id_article = '$id' AND type = 'vg'");

while($donnees = mysql_fetch_array($sql))
{

$support = $donnees['support'];

?>
<img src="images_jeux/<?php echo $support ?>/<?php echo $donnees['id_jeu'] ?>/<?php echo $donnees['id_image'] ?>.gif" />
<?php } mysql_close(); ?>

a455bcd9
Nouveau WRInaute
 
Messages: 3
Inscription: Dim Jan 14, 2007 16:37

Message le Dim Jan 14, 2007 17:42

Bonjour, merci d'avoir répondu aussi vite !

Il n'y a plus le message d'erreur, mais la fonction ne fonctionne pas, c'est à dire que le mot Xbox 360 n'est pas transformé, et il reste comme il est.

a455bcd9

magic corp.
WRInaute impliqué
WRInaute impliqué
 
Messages: 425
Inscription: Jeu Juin 17, 2004 9:56

Message le Dim Jan 14, 2007 18:17

Pour ça il faut utiliser la fonction et pas uniquement la déclarer.
Code: Tout sélectionner
...
while($donnees = mysql_fetch_array($sql))
{

$support = convert_for_uri($donnees['support']);

?>
...

Ou
Code: Tout sélectionner
while($donnees = mysql_fetch_array($sql))
{
  echo('<img src="images_jeux/' . convert_for_uri($donnees['support']) . '/' . $donnees['id_jeu'] . '/' . $donnees['id_image'] . '.gif" />');
}
mysql_close(); ?>

a455bcd9
Nouveau WRInaute
 
Messages: 3
Inscription: Dim Jan 14, 2007 16:37

Message le Lun Jan 15, 2007 18:13

Ha ok, je savais pas du tout...

Bein merci pour ce très bon code, ça fonctionne parfaitement !

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Mar Jan 16, 2007 9:54

salut

Pour ma part, je pense que ce thread devrait être purement et simplement supprimé!

95% (j'ai pas osé dire 100% ...il y en a un de bien je crois) des codes proposés ne valent rien et ce, pour différentes raisons :

* Utilisation de fonctions obsolètes
* Optimisation nulle : certains codes de dix lignes s'ecrivent en une seule
* le pire : certains contiennent des trous de sécurité

Et j'en passe et des meilleurs ....

Je sais que je vais pas me faire que des potes sur ce coup là, mais donner de mauvais codes à des débutants (ou pas, j'ai même vu un "spécialiste" utiliser eregi_replace ...) n'est pas la bonne solution.
Certes, wai, ça marche (et encore peut-être pas tous) ... après on s'étonne sur les forums spécialisés dans le langage PHP de voir de telles inepties .... pff

efin bref, amusez-vous bien ...

fab

marion17
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Sam Nov 11, 2006 18:24

Message le Mar Jan 16, 2007 14:43

merci

gabriel_f
Nouveau WRInaute
 
Messages: 19
Inscription: Ven Jan 12, 2007 14:26

Message le Mar Jan 16, 2007 14:53

un homme charmant sous tout rapports.....

Heureusement que le titre du thread est "bouts de code ultra optimisés super secure de la mort pour se palucher sur du php 7.4 rc3" et pas "bouts de code utiles"

désolé du freepost, mais la ca me grattait

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Mar Jan 16, 2007 15:00

Heureusement que le titre du thread est "bouts de code ultra optimisés super secure de la mort pour se palucher sur du php 7.4 rc3" et pas "bouts de code utiles"


Tout à fait d'accord avec toi. C'est juste que j'en vois tellement passer tous les jours avec des "aye aye aye mon site s'est fait hacké" , "pourquoi ma page met trente minutes à se charger ?" .... après, vous faites bien ce que vous voulez.

fab

gabriel_f
Nouveau WRInaute
 
Messages: 19
Inscription: Ven Jan 12, 2007 14:26

Message le Mar Jan 16, 2007 15:08

ok, je vois ton point de vue, seulement reconnait que cetait un peu brutal comme maniere de l'exposer ;)

bref, parenthèse close.

bigs32
WRInaute impliqué
WRInaute impliqué
 
Messages: 467
Inscription: Lun Mai 08, 2006 22:48

Message le Mer Jan 17, 2007 1:14

Tres bonne comme idée .voici ma petite contribution
Code: Tout sélectionner
* Enlève les accents
*
* @return string
*/
function sansaccent($chaine)
{
   return strtr($chaine,
      'àâäåãáÂÄÀÅÃÁæÆçÇéèêëÉÊËÈïîìíÏÎÌÍñÑöôóòõÓÔÖÒÕùûüúÜÛÙÚÿ',
      'aaaaaaaaaaaaaacceeeeeeeeiiiiiiiinnoooooooooouuuuuuuuy');
}



edit dd32 : ajout bbcode


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5180
Inscription: Jeu Oct 20, 2005 19:47

Message le Mer Jan 17, 2007 6:26

Un explorateur de fichier parfois bien pratique :

Code: Tout sélectionner
<?
//Explorer PHP By Scorpion
function present($chaine,$mot,$sep)
{
    $tab=split($sep,$chaine);
    $rep=FALSE;
    for ($j=0;$j<count($tab);$j++)
    {
        if ($tab[$j]==$mot) {$rep=TRUE;break;}
    }
    return $rep;
}
function affperm($fichier)
{
    $perm=fileperms($fichier);
    $nbr1=substr($perm,-1,1);
    return(true);
}
function affperm2($fichier)
{
    $perm=fileperms($fichier);
    $nbr1=substr($perm,-1,1);
    $r="-";$w="-";$x="-";
    if ($nbr1>=6 and $nbr1<=9)
        $r="r";
    if ($nbr1==4 or $nbr1==5 or $nbr1==8 or $nbr1==9)
        $w="w";
    if ($nbr1==3 or $nbr1==5 or $nbr1==7 or $nbr1==9)
        $x="x";
    return $r." ".$w." ".$x;
}
function affdate($fichier)
{
    $datef=filemtime("$fichier");
    if (date("d/m/Y",$datef)==date("d/m/Y",time()))
    {
        $datef="Aujourd'hui à".date(" H:i:s",$datef);
    }
    else
    {
        $datef=date("d/m/Y à H:i:s",$datef);
    }
    return $datef;
}
function afftaille($t)
{
    if ($t>=10000 and $t<1000000)
    {
        $t=(int)($t/1000);
        $tlib="$t Ko";
    }
    else if ($t>1000000 and $t<1000000000)
    {
        $t=(int)($t/10000);
        $t=$t/100;
        $tlib="$t Mo";
    }
    else if ($t>1000000000)
    {
        $t=(int)($t/10000000);
        $t=$t/100;
        $tlib="$t Go";
    }
    else
    {
        $tlib="$t Bytes";
    }
    return $tlib;
}
function autoinstall($rep)
{
    @copy("index.php",$rep."/index.php");
}
$tab_ext=array(
        array("PHP","#006699","Fichier PHP"),
        array("PHPS","red","Code source"),
        array("HTM,HTML","#00219A","Fichier HTML"),
        array("TXT","#000000","Fichier Texte"),
        array("DOC","#0066FF","Fichier Word"),
        array("EXE","#6600EE","Fichier exécutable"),
        array("ZIP,RAR,TAR,GZ,TGZ","#FF6600","Fichier compressé"),
        array("JPG,JPEG,GIF,BMP","#00BBFF","Image"),
        array("MPG,MPEG,AVI","#008000","Vidéo"));
if ($action=="install" and !empty($rep))
{
    if (!@copy("index.php",$rep."/index.php"))
    {
        echo "<FONT size=1 face=verdana color=red><B>ATTENTION</B> : ERREUR DANS L'INSTALLATION DU SCRIPT !! VERIFIEZ VOS DROITS SUR LES FICHIERS...</FONT><BR><BR>";
    }
}
echo "<HTML><HEAD><STYLE>A {TEXT-DECORATION: none}A:visited {TEXT-DECORATION: none}A:hover {TEXT-DECORATION: underline}TD{FONT-FAMILY:verdana;FONT-SIZE:10}BODY{FONT-FAMILY:verdana;FONT-SIZE:10}</STYLE><TITLE>Explorer PHP</TITLE></HEAD><BODY>";
$mydir=dir("."); // récupère le répertoire du script
$mydir->read();
$rep=""; //variable contenant les répertoires
$fic=""; //variable contenant les fichiers
$rep=$rep."<TR height=20><TD><FONT FACE=wingdings size=4>1</FONT></TD><TD><A HREF=\"..\"><FONT color=green>..</FONT></A></TD><TD>&nbsp;</TD></TR>\n";
while($entry=$mydir->read()) // on lit chaque fichier ou répertoire jusqu'à ce qu'il n'y en ai plus
{
   
    if (($entry!="index.php" and substr($entry,0,1)!="."))
    {
        if (filetype($entry)=="dir") // on teste si le nom de fichier est un répertoire ou non
        {
            $perm=fileperms("$entry");
            $nbr1=substr($perm,-1,1);
            $perm=fileperms("$entry/index.php");
            $nbr2=substr($perm,-1,1);
            if (filesize("index.php")!=filesize("$entry/index.php") && affperm("$entry"))
            {
                $link="<A HREF=\"index.php?action=install&rep=$entry\"><FONT color=#0B163D face=wingdings size=4>:</FONT></A>";
            }
            else
            {
                $link="<FONT FACE=wingdings size=4 color=red>ý</FONT>";
            }
            if (filesize("index.php")==filesize("$entry/index.php"))
                $link="";
            $perm=affperm2($entry);
            $rep=$rep."<TR height=20><TD><FONT FACE=wingdings size=4>0</FONT></TD><TD><A HREF=\"$entry/\"><FONT color=green>$entry</FONT></A></TD><TD>$link</TD><TD align=center>N.A</TD><TD>&nbsp;</TD><TD>Répertoire</TD><TD>&nbsp;</TD><TD align=center>$perm</TD><TD>&nbsp;</TD><TD>".affdate($entry)."</TD></TR>\n";
        }
        else
        {
            $tlib=afftaille(filesize($entry)); // convertion de la taille du fichier
            $extention2=substr($entry,-1,1); // prends le dernier caractère (pour voir si fichier est un backup)
            $extention=strtoupper(str_replace(".","",strrchr($entry,".")));
            $couleur="#545A72";
            $description="Fichier $extention";
            for ($i=0;$i<count($tab_ext);$i++)
            {
                if (present($tab_ext[$i][0],$extention,","))
                {
                    $couleur=$tab_ext[$i][1];
                    $description=$tab_ext[$i][2];
                    break;
                }
            }
            if ($extention2=="~")
            {
                $couleur="#545A72";
                $description="Fichier Backup";
            }
            $perm="<FONT FACE=wingdings size=4 color=red>ý</FONT>";
            if (is_writable("$entry"))
            {
                $perm="<FONT FACE=wingdings size=4 color=green>þ</FONT>";
            }
            $perm=affperm2($entry);
            $fic=$fic."<TR height=20><TD align=center><FONT FACE=wingdings size=4 COLOR=$couleur>2</FONT></TD><TD><A HREF=\"$entry\"><FONT COLOR=$couleur>$entry</FONT></A></TD><TD width=20>&nbsp;</TD><TD><FONT COLOR=$couleur> $tlib</FONT></TD><TD width=20>&nbsp;</TD><TD><FONT COLOR=$couleur>$description</FONT></TD><TD width=20>&nbsp;</TD><TD align=center>$perm</TD><TD width=20>&nbsp;</TD><TD><FONT COLOR=$couleur>".affdate($entry)."</FONT></TD></TR>\n";
        }
    }
}
$mydir->close();
echo "<TABLE>";
echo "<TR><TD colspan=3>&nbsp;</TD><TD align=center>Taille</TD><TD>&nbsp;</TD><TD align=center>Description</TD><TD>&nbsp;</TD><TD align=center>Permissions</TD><TD>&nbsp;</TD><TD align=center>Dernier accès</TD></TR>";
echo "$rep$fic</TABLE></BODY></HTML>"; // on affiche les répertoires, puis les fichiers.
$t=afftaille(diskfreespace("/"));
echo "<BR><BR><P align=center>.: Explorer PHP | Espace disque libre : $t :.";
?>

Morceaux de scripts PHP bien utiles, participez ;) Morceaux de scripts PHP bien utiles, participez ;)

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités