Vie pour être heureux !
 Groupe : Membres
|
Reprise du dernier message de la page précédente :
Bon, je propose 2 lib de "compatibilité" pour émuler file_get_contents sur des url quand ya pas allow_url_fopen et pour emuler http_post_fiels quand ya pas pecl (< php 5 par exemple).
rFile_get_contents :
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 | <?php
if(strtolower(ini_get('allow_url_fopen')) == 'off'){
if(extension_loaded('curl') || (!extension_loaded('curl') && dl('curl'))){
function rFile_get_contents($url){
$crlf = "\r\n";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_HEADER, true);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$string = ob_get_contents();
ob_end_clean();
// split header and body
$pos = strpos($string, $crlf . $crlf);
if($pos === false) return($string);
$header = substr($string, 0, $pos);
$body = substr($string, $pos + 2 * strlen($crlf));
// parse headers
$headers = array();
$lines = explode($crlf, $header);
foreach($lines as $line) if(($pos = strpos($line, ':')) !== false) $headers[strtolower(trim(substr($line, 0, $pos)))] = trim(substr($line, $pos+1));
if(isset($headers['location'])){
return(rFile_get_content($headers['location']));
}else{
return $body;
}
}
}else{
class HTTPRequest{
private $_fp; // HTTP socket
private $_url; // full URL
private $_host; // HTTP host
private $_protocol; // protocol (HTTP/HTTPS)
private $_uri; // request URI
private $_port; // port
// scan url
private function _scan_url(){
$req = $this->_url;
$pos = strpos($req, '://');
$this->_protocol = strtolower(substr($req, 0, $pos));
$req = substr($req, $pos+3);
$pos = strpos($req, '/');
if($pos === false) $pos = strlen($req);
$host = substr($req, 0, $pos);
if(strpos($host, ':') !== false){
list($this->_host, $this->_port) = explode(':', $host);
}else{
$this->_host = $host;
$this->_port = ($this->_protocol == 'https') ? 443 : 80;
}
$this->_uri = substr($req, $pos);
if($this->_uri == '') $this->_uri = '/';
}
// constructor
public function __construct($url){
$this->_url = $url;
$this->_scan_url();
}
// download URL to string
public function DownloadToArray(){
$crlf = "\r\n";
// generate request
$req = 'GET '.$this->_uri.' HTTP/1.0'.$crlf.'Host: '.$this->_host.$crlf.$crlf;
// fetch
$this->_fp = fsockopen(($this->_protocol == 'https' ? 'ssl://' : '').$this->_host, $this->_port);
fwrite($this->_fp, $req);
while(is_resource($this->_fp) && $this->_fp && !feof($this->_fp))
$response .= fread($this->_fp, 1024);
fclose($this->_fp);
// split header and body
$pos = strpos($response, $crlf . $crlf);
if($pos === false) return($response);
$header = substr($response, 0, $pos);
$body = substr($response, $pos + 2 * strlen($crlf));
// parse headers
$headers = array();
$lines = explode($crlf, $header);
foreach($lines as $line) if(($pos = strpos($line, ':')) !== false) $headers[strtolower(trim(substr($line, 0, $pos)))] = trim(substr($line, $pos+1));
// redirection?
if(isset($headers['location'])){
$http = new HTTPRequest($headers['location']);
return($http->DownloadToArray($http));
}else{
return(array($body, $headers));
}
}
}
function rFile_get_contents($url){
$http = new HTTPRequest($url);
$res = $http->DownLoadToArray();
return $res[0];
}
}
}else{
function rFile_get_contents($url){
return file_get_contents($url);
}
}
?>
|
http_post_fields : nécessite curl si ya pas pecl.
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153 | <?php
if(!function_exists('http_post_fields')){
function post_data_encode($data, $keyprefix = "", $keypostfix = "") {
$vars = null;
foreach($data as $key => $value){
if(is_array($value))
$vars .= post_data_encode($value, $keyprefix.$key.$keypostfix.urlencode("["), urlencode("]"));
else
$vars .= $keyprefix.$key.$keypostfix."=".urlencode(utf8_encode($value))."&";
}
return $vars;
}
function cookie_data_encode($cookiearr){
$cookievars = '';
foreach($cookiearr as $key=>$value) $cookievars .= $key.'='.utf8_encode($value).'; ';
return $cookievars;
}
class CurlRequest{
var $ch;
/**
* Init curl session
*
* $params = array('url' => '',
* 'host' => '',
* 'header' => '',
* 'method' => '',
* 'referer' => '',
* 'cookie' => '',
* 'post_fields' => '',
* ['login' => '',]
* ['password' => '',]
* 'timeout' => 0
* );
*/
function CurlRequest($params){
$this->ch = curl_init();
$user_agent = 'Mozilla/5.0 (Windows; U;
Windows NT 5.1; ru; rv:1.8.0.9) Gecko/20061206 Firefox/1.5.0.9';
$header = array(
"Accept: text/xml,application/xml,application/xhtml+xml,
text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
"Accept-Language: ru-ru,ru;q=0.7,en-us;q=0.5,en;q=0.3",
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7",
"Keep-Alive: 300");
if(isset($params['host']) && $params['host']) $header[]="Host: ".$host;
if(isset($params['header']) && is_array($params['header'])) array_merge($header, $params['header']);
@curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1 );
@curl_setopt($this->ch, CURLOPT_VERBOSE, 1 );
@curl_setopt($this->ch, CURLOPT_HEADER, 1 );
if($params['method'] == "HEAD") @curl_setopt($this->ch, CURLOPT_NOBODY, 1);
@curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, 1);
@curl_setopt($this->ch, CURLOPT_HTTPHEADER, $header);
if ($params['referer']) @curl_setopt($this->ch, CURLOPT_REFERER, $params['referer']);
@curl_setopt($this->ch, CURLOPT_USERAGENT, $user_agent);
if($params['cookie']) @curl_setopt($this->ch, CURLOPT_COOKIE, $params['cookie']);
if($params['method'] == "POST" ){
curl_setopt($this->ch, CURLOPT_POST, true );
curl_setopt($this->ch, CURLOPT_POSTFIELDS, $params['post_fields']);
}
@curl_setopt($this->ch, CURLOPT_URL, $params['url']);
@curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, 0);
@curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 0);
if(isset($params['login']) & isset($params['password']))
@curl_setopt($this->ch, CURLOPT_USERPWD, $params['login'].':'.$params['password']);
@curl_setopt($this->ch, CURLOPT_TIMEOUT, $params['timeout']);
}
/**
* Make curl request
*
* @return array 'header','body','curl_error','http_code','last_url'
*/
function exec(){
$response = curl_exec($this->ch);
$error = curl_error($this->ch);
$result = array('header' => '',
'body' => '',
'curl_error' => '',
'http_code' => '',
'last_url' => ''
);
if($error != ""){
$result['curl_error'] = $error;
return $result;
}
$header_size = curl_getinfo($this->ch, CURLINFO_HEADER_SIZE);
$result['header'] = substr($response, 0, $header_size);
$result['body'] = substr( $response, $header_size);
$result['http_code'] = curl_getinfo($this->ch, CURLINFO_HTTP_CODE);
$result['last_url'] = curl_getinfo($this->ch, CURLINFO_EFFECTIVE_URL);
return $result;
}
}
function http_post_fields($url, $postarray, $options = null){
$postvar = substr(post_data_encode($postvar), 0, -1);
$params = array('url' => $url,
'host' => '',
'header' => array(),
'method' => 'GET', //POST HEAD
'referer' => '',
'cookie' => '',
'post_fields' => $postvar,
'login' => '',
'password' => '',
'timeout' => 0
);
if(is_array($options)){
foreach($options as $option => $val){
switch($options){
case 'host':
$params['host'] = $val;
break;
case 'header':
foreach($val as $hn => $hv){
$param['header'][] = $hn.': '.$hv;
}
break;
case 'method':
$params['method'] = $val;
break;
case 'referer':
$params['referer'] = $val;
break;
case 'cookie':
$params['cookie'] = cookie_data_encode($val);
break;
case 'login':
$param['login'] = $val;
break;
case 'password':
$params['password'] = $val;
break;
case 'timeout':
$params['timeout'] = $val;
}
}
}
$conn = new CurlRequest($params);
$result = $conn->exec();
if($result['curl_error']) trigger_error($result['curl_error'], E_USER_WARNING);
if($result['http_code']!='200') trigger_error("HTTP Code = ".$result['http_code'], E_USER_WARNING);
if(!$result['body']) trigger_error("Pas de corps du document", E_USER_WARNING);
return array($result['body'], $result['header']);
}
}
?>
|
J'ai reconstitué ces lib grâce à quelques bouts de code des commentaires utilisateurs de la doc et surtout grâce à la doc elle-même.
Maintenant, faut tester pour trouver tous les bug (certains m'ont sans doute échapés).
Bisous, Nyu
Toutes mes sources !
Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder.
Framework in use: Seraframework (my own one).
In Microeisti staff.
|
Peace and love !
 Groupe : Membres
|
Citation : AsibasthJ'ai déjà proposé une fonction fonctionnelle (ahah) au sujet des magic quotes sur ce topic...
Quelle page s'il te plait ?
Wazaaaaaaa ! Peace & love !
Utilisez les balises de code nondidiou ! Et des titres plus explicites, ca serait pas mal aussi ouais !
Dessine Moi Une Marmotte: |||||||||||||||||||| % ±5%
|
Mangeur de Lapins Crus


|
À la page numéro "sers-toi d'un array map"
|
Error 404: brain not found
 Groupe : Membres
|
Je viens rajouter ma pierre à l'édifice.
Le morceau de code permet d'obtenir, a partir d'une table de base de donnée de cette forme:
| nom | valeur |
|---|
| alpha |
1000 |
| beta |
2000 |
| gamma |
3000 |
| delta |
4000 |
| ... |
... |
un array (tableau associatif) comme ceci:
| variable | valeur |
|---|
| $tab['alpha'] |
1000 |
| $tab['beta'] |
2000 |
| $tab['gamma'] |
3000 |
| $tab['delta] |
4000 |
| ... |
... |
C'est à dire que la valeur de la première colonne est utilisée comme nom de variable pour la 2eme colonne.
Voici le code:
Code : PHP 1
2
3
4
5
6
7
8
9
10 | <?php
$result = mysql_query('SELECT * FROM table ORDER BY valeur');
$tab=Array();
while($ligne = mysql_fetch_assoc($result)){
$tab[$ligne['nom']]=$ligne['valeur'];
}
print_r($tab);
?>
|
Je tiens a préciser que j'ai cherché ce fonctionnement pendant des heures et que c'est Moua&Moua qui en a trouvé la solution dans ce topic.
M3PHISTOS, Virtuellement vôtre...
|
Saite ita no wa My Rosy Heart
 Groupe : Membres
|
M3PHISTOS => C'est pas une fonction c'est juste une histoire de logique
Vous êtes graphiste ?
Fans de Manga ? Fans de dessins Manga ?
Envie de lire un peux ? => ici
|
 Groupe : Membres
|
Ouais, c'est le B-A-BA ! Sinon j'en ai un bien si on fait echo 3+5 ça va afficher 8 !
|
Peace and love !
 Groupe : Membres
|
Citation : AsibasthÀ la page numéro "sers-toi d'un array map" 
Tu m'aides énormément.
Wazaaaaaaa ! Peace & love !
Utilisez les balises de code nondidiou ! Et des titres plus explicites, ca serait pas mal aussi ouais !
Dessine Moi Une Marmotte: |||||||||||||||||||| % ±5%
|
Freak man
 Groupe : Membres
|
|
www.lepenspinning.free.fr
 Groupe : Membres
|
Salut, je vous donne un script qui créé un sitemap automatiquement :
(il faut placer la page à la racine de votre site, vous pouvez retrouver le script dans les commentaires du tuto sur les sitemaps que je vous conseil de lire.)
Code : PHP - sitemap.php 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 | <?php
/***************
générateur de sitemap créé le 28-29/04/2008 par Thulium (et vidji)
cette page le créé automatiquement en prenant toutes les pages du site.
J'aurai pu faire ce script avec la fonction glob, mais elle n'est souvent pas acceptée chez les hébergeurs gratuits comme free (chez qui je suis) et comme j'ai l'intention de faire un tuto dessus je prefère que ce soit au maximum compatible...
****************
Enregistrez le script dans sitemap.php et n'oubliez pas de dire d'où il provient si tu le donne, merci.
***************/
header("Content-type: text/xml");// on dit que c'est un document XML (puisque l'extension est php)
function extensions($page)// fonction pour n'enregistrer dans le sitemap seulement les fichiers HTML, HTM, PHP (tu peux changer)
{
return preg_match("#^.+.(php|html?)$#", $page);
}
function dossier($dir)//retourne le bon nom d'un dossier pour le script
{
if($dir == './' OR $dir == '../' OR $dir == '/' OR $dir == '..' OR $dir == '.')//si ce n'est pas le dossier racine ou dossier parent
return "";
else
return $dir.'/';
}
function url($site, $dir, $page, $lastmod, $changefreq = "weekly", $priority = "0.5")//fonction qui donne le texte du sitemapentre <url> et </url> d'une page
{
if(!preg_match("#^nomdedossier#", $dir))// pour mettre, par exemple, 0.0 de priorité d'un dossier, ici tout sauf ce dossier
echo "
<url>
<loc>".$site.dossier($dir).$page."</loc>
<lastmod>".date('Y-m-d', $lastmod)."</lastmod>
<changefreq>".$changefreq."</changefreq>
<priority>".$priority."</priority>
</url>";
else // et ici ce dossier pour le 0.0
echo "
<url>
<loc>".$site.dossier($dir).$page."</loc>
<lastmod>".date('Y-m-d', $lastmod)."</lastmod>
<changefreq>".$changefreq."</changefreq>
<priority>0.0</priority>
</url>";
}
function sitemap($site, $dir)// fonction coeur
{
$repertoire = opendir($dir);// on ouvre le répértoire.
while($page = readdir($repertoire))
{
if($page != './' AND $page != '../' AND $page != '..' AND $page != '.' AND $page != '/')
{
$infos = stat(dossier($dir).$page);// $infos[9] est identique à filemtime
if(filetype(dossier($dir).$page) == 'dir')// filetype => type de fichier ^^
{
sitemap($site, dossier($dir).$page);// recursivité : si c'est un dossier, on fait les <url></url> du dossier
}
elseif(filetype(dossier($dir).$page) == 'file')// si c'est un fichier
{
if(extensions($page))// si c'est $page a une extension acceptée :
{
switch($page)//ici, reglez les importances de pages spéciales et par défaut.
{
case 'index.php': // page plus importante
$changefreq = 'weekly';
$priority = '0.7';
break;
case 'newsletter.php':
$changefreq = 'monthly';
$priority = '0.8';
break;
case 'htaccess': // on s en fiche donc priorité 0.0
$changefreq = 'monthly';
$priority = '0.0';
break;
case 'forum.php':
$changefreq = 'always'; // pour le forum on met always
$priority = '0.9';
break;
case 'menu.php': // page incluse donc 0.0
$changefreq = 'monthly';
$priority = '0.0';
break;
default: // réglages par défaut
$changefreq = 'weekly';
$priority = '0.5';
}
url($site, $dir, $page, $infos[9], $changefreq, $priority);// on ecrit le paragraphe sur elle.
}
}
}
}
closedir($repertoire);// on ferme le repertoire courant.
}
/***************
Le début du point de vu éxécution.
***************/
echo "<?xml version='1.0' encoding='UTF-8' ?>
<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">";// on ecrit les premières lignes du sitemap
$site = "http://www.example.com/";// on indique l'adresse du site (n'oubliez pas le / à la fin)
$dir = "./";// on indique le dossier de base d'indexation : ici la racine ; n'oubliez pas le .
/***************
on appelle une fois la fonction sitemap et c'est bon!
***************/
sitemap($site, $dir);
echo "
</urlset>";// la fin du sitemap
clearstatcache();// on vide le cache de stat() ==> <lien url="http://php.net/stat">http://php.net/stat</lien> - <lien url="http://php.net/clearstatcache">http://php.net/clearstatcache</lien>
/***************
Il me semble l'avoir assez commenté pour qu'il soit compréhensible,
L'exemple sur mon site : <lien url="http://www.lepenspinning.free.fr/sitemap.php">http://www.lepenspinning.free.fr/sitemap.php</lien>
Une idée : vous pouvez faire un système de cache pour eviter de recharger tout le sitemap, par exemple un fichier sitemap.xml et un autre faire_sitemap.php que vous appellez tous les jours avec un cron.
****************
Ce script ne gère pas les page du genre
-forum.php?topic=259&page=6
-forum-259-6.html
-livredor.php?p=12
-...
Je vous conseille de faire deux page sitemap_forum.php et sitemap_livredor.php que vous incluez à la ligne 101
***************/
?>
|
Édité
le 30/04/2008 13:58:09
par Thulium
image du jour : le siteduzero est pas dans le dico ? 
signature :
|
 Groupe : Membres
|
Fonction rmdir() récursive qui supprime un dossier même si celui-ci n'est pas vide.
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 | <?php
function rmdir_r($dir){
/* Fonction rmdir() récursive, programmée par Babie */
if(!is_dir($dir)) return false; //Si le dossier demandé n'existe pas ou n'est pas un dossier, on renvoie FALSE
$scan = scandir($dir); //On met la liste des éléments (fichiers/dossier) du répertoire $dir dans le array $scan
$i = 2; //On commence la variable $i à 2 pour éviter d'avoir les éléments "." et ".."
while($i < count($scan)){ //Tant que $i est plus petit que le nombre d'éléments du array $scan :
if(is_dir($dir."/".$scan[$i])){ // Si l'élément est un dossier,
rmdir_r($dir."/".$scan[$i]); // On recommence la fonction pour lui
}else{ // Si l'élément n'est pas un dossier, c'est un fichier,
unlink($dir."/".$scan[$i]); // Donc on le supprime
}
$i++; //On incrémente la variable $i afin de ne pas avoir une boucle infinie
}
rmdir($dir); //Maintenant qu'on sait que le dossier $dir est vide, on peut le supprimer
}
?>
|
Ma définition de l'art: "L'art est une multitude de possibilités."
J'adore le BruteForce XD
|
Groupe : Membres
|
Génial ta fonction
|
Yamo...
 Groupe : Membres
|
Citation : BabieFonction rmdir() récursive qui supprime un dossier même si celui-ci n'est pas vide. Il y a déjà une fonction équivalente dans les commentaires de la doc, pourquoi réinventer la roue ?
/o/
/o/
/o/
/o/
/o/
/o/ \o\
\o\
\o\
\o\
\o\
\o\
|
www.lepenspinning.free.fr
 Groupe : Membres
|
...parce que tout le monde ne lit pas/n'a pas le temps de lire tous les commentaires de la doc...
image du jour : le siteduzero est pas dans le dico ? 
signature :
|
Saite ita no wa My Rosy Heart
 Groupe : Membres
|
Citation : Thulium...parce que tout le monde ne lit pas/n'a pas le temps de lire tous les commentaires de la doc...
C'est pour ça qu'il flood le forum
Vous êtes graphiste ?
Fans de Manga ? Fans de dessins Manga ?
Envie de lire un peux ? => ici
|
Don't forget : The Sky Is Blue
 Groupe : Membres
|
Citation : shine-nekoCitation : Thulium...parce que tout le monde ne lit pas/n'a pas le temps de lire tous les commentaires de la doc...
C'est pour ça qu'il flood le forum 
C'est pour ca qu'il y a un forum 
!!!
|
Yamo...
 Groupe : Membres
|
Citation : Thulium...parce que tout le monde ne lit pas/n'a pas le temps de lire tous les commentaires de la doc... Pure mauvaise foi...
Tu veux supprimer un dossier même plein connaissant rmdir, tu te dis pas que quelqu'un a déjà pu avoir ce problème ?
Par réflexe je me dis que oui et donc je vais voir les commentaires de la doc'... Suffit d'en lire un hein, c'est le premier qu'on voit actuellement.
/o/
/o/
/o/
/o/
/o/
/o/ \o\
\o\
\o\
\o\
\o\
\o\
|
Passion Never Sleeps
 Groupe : Membres
|
A quoi sert ce topic ? -_- pas juste à innover et a trouver de meilleurs fonctions.
Il permet tout d'abord de récolter des astuces, des fonctions utilisateurs etc etc et puis à en faire une liste généralisées. Ce qui est je trouve bine plus pratique que de devoir chercher à gauche et à droite. Non ?
Secret (cliquez pour afficher)Ce que je maitrise actuellement: (x)html, css, php, as, js, sql, un peu de python et de c
|
Yamo...
 Groupe : Membres
|
Citation : JeromeJA quoi sert ce topic ? -_- pas juste à innover et a trouver de meilleurs fonctions.
Il permet tout d'abord de récolter des astuces, des fonctions utilisateurs etc etc et puis à en faire une liste généralisées. Ce qui est je trouve bine plus pratique que de devoir chercher à gauche et à droite. Non ? A gauche et à droite... La doc c'est pas n'importe quoi non plus hein c'est quand même la référence pour le PHP. Non ?
Certes une liste c'est pratique mais pour ma part pour un cas aussi spécifique je pense d'abord à aller voir la doc plutôt qu'un listing où je ne suis pas sûr de trouver ce que je cherche. (et puis si on répertorie tous les cas spécifiques, il va être bien long et pas pratique à lire votre listing)
Après, chacun ses goûts...
/o/
/o/
/o/
/o/
/o/
/o/ \o\
\o\
\o\
\o\
\o\
\o\
|
Passion Never Sleeps
 Groupe : Membres
|
Bah y a les pures codeurs  jme réfère quotidiennement à la doc par exemple  (presque) mais je lis pas les commentaires, car là non plus je suis pas sur de trouver ce que je cherche, et, parfois quand on peut ne pas chercher, c'est une perte de temps de chercher (Oo...)
Puis certains codeurs eux ne se servent jamais de la doc (ou quasi pas) donc ça peut leur être très utile. Maintenant je pense que le juste milieu est la meilleure chose.
Secret (cliquez pour afficher)Ce que je maitrise actuellement: (x)html, css, php, as, js, sql, un peu de python et de c
|
 Groupe : Membres
|
Si la doc a fait une fonction rmdir() qui ne permet pas de supprimer un dossier s'il n'est pas vide, c'est qu'il y a une raison. En général, les développeurs de PHP et donc de la doc établissent la logique la plus pure qui soit pour le langage et les besoins utilisateurs. Ca veut dire qu'il n'est pas nécessaire de pouvoir supprimer un dossier non vide.
|
Groupe : Membres
|
Exact mais moi par exemple, j'ai déjà eu besoins de supprimer un dossier qui contenait plein de fichiers à l'intérieur dans le cas d'un ftp en ligne.
|
Groupe : Membres
|
Fonction qui permet de compter les caractères similaires dans une chaîne.
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | function compteur_similaire($chaine,$search)
{
$chaine = str_split($chaine);
$num = count($chaine);
$y = 0;
$trouvee = 0;
while($num > $y)
{
if($search == $chaine[$y])
{
$resultat = ++$trouvee;
}
$y++;
}
return $resultat;
}
echo compteur_similaire('php','p');
|
|
**Rose**


|
Tu ne crois pas qu'il y a moyen de faire plus simple, plus court, plus mieux ?
Et substr_count() existe, autant s'en servir.
Édité
le 08/05/2008 19:32:11
par `Haku
Envie d'apprendre le PHP ou le SQL ?
Envie d'en savoir plus sur le PHP ou le SQL ?
Suivez le guide...
|
Vive One piece et le sdz ! Groupe : Membres
|
Hello !!
Aujourd'hui je vais pour la première fois vous poster 2 fonctions.
La seconde est encore à l'état d'amélioration.
$rep_smileys correspond au répertoire ou les smileys sont .
Voici ma première fonction:
BBcode
But: traduire des balises en éléments Html
Code : PHP 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 | <?php
function bbcode($contenu)
{
$contenu = str_replace(":D","<img src='".$rep_smileys."content.gif' alt='' />",$contenu);
$contenu = str_replace("^^","<img src='".$rep_smileys."lol.gif' alt='' />",$contenu);
$contenu = str_replace(":)","<img src='".$rep_smileys."sourire.gif' alt='' />",$contenu);
$contenu = str_replace(":clindoeil:","<img src='".$rep_smileys."clindoeil.gif' alt='' />",$contenu);
$contenu = str_replace(":fume:","<img src='".$rep_smileys."fume.gif' alt='' />",$contenu);
$contenu = str_replace(":gagne:","<img src='".$rep_smileys."gagne.gif' alt='' />",$contenu);
$contenu = str_replace(":houra:","<img src='".$rep_smileys."houra.gif' />",$contenu);
$contenu = str_replace(":anniversaire:","<img src='".$rep_smileys. |
|