Vous êtes connecté en tant que anonymous Se Deconnecter
Browse code

final procedural project

ER authored on 13/04/2012 10:17:34
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,125 @@
1
+<?php
2
+function link_rewrite($page, $params = array())
3
+{
4
+	//Solution élégante
5
+	//return (('home' == $page) ? 'index.html' : $page . '.html');
6
+	
7
+	//Solution Professionnelle
8
+	  // -- Mauvaise version
9
+	$stringParams = '';
10
+	foreach($params as $key => $values){
11
+		$stringParams .= "/" . $key ."/" . $values;
12
+	}
13
+	return (('home' == $page) ? '/' : '/' . $page . $stringParams);
14
+	  // -- Bonne version
15
+	
16
+	/*
17
+	//Changement de comportement d'une fonction PHP-Zend ... grrr
18
+	array_unshift($params , $page);
19
+	var_dump($params);
20
+	$page = '/' . implode('/' , $params);
21
+	*/
22
+	return $page;
23
+	
24
+	//Solution Personnelle
25
+	
26
+	
27
+}
28
+function url_rewrite()
29
+{
30
+	//Solution élégante !
31
+	// Avec un case pour chacune des URL listées
32
+	/*
33
+	$url = parse_url($_SERVER['REQUEST_URI']);
34
+	//var_dump($url);
35
+	parse_str(@$url['query'], $params);
36
+	$page['params'] = $params;
37
+	
38
+	switch ($url['path']) {
39
+		case '/index.html' :
40
+		case '/' :
41
+			$page['name'] = 'home';
42
+			break;
43
+		case '/guestbook.html' :
44
+			$page['name'] = 'guestbook';
45
+			break;
46
+		case '/contact.html' :
47
+			$page['name'] = 'contact';
48
+			break;
49
+		default:
50
+			$page['name'] = 'error';
51
+	}
52
+	
53
+	$pageFile = PAGES_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
54
+	
55
+	if(!file_exists($pageFile)){
56
+		$page['name'] = 'error';
57
+	}
58
+	*/
59
+	/*
60
+	//Solution Professionnelle
61
+	//Pour les solutions d'URL du genre:
62
+	 * http:// FQDN /page/var1/value1/var2/value2/....
63
+	 */
64
+	
65
+	$url = parse_url($_SERVER['REQUEST_URI']);
66
+	$urlParts = explode('/' , trim( $url['path'] , '/' ));
67
+	//Récupération du nom de la page
68
+	//$page['name'] = $urlParts[0];
69
+	($urlParts[0] == 'index' ||$urlParts[0] == '' )?$page['name']='home':$page['name']=$urlParts[0];
70
+	
71
+	unset($urlParts[0]);
72
+	
73
+	//vérification du nombre de parametres: s'il n'existe pas autant de clé que
74
+	// de valeurs on sort de la fonction et on renvoie une page d'erreur.
75
+	$numParts = count($urlParts);
76
+	if (0!=$numParts%2) {
77
+		$page['name'] = 'error';
78
+		$page['params'] = array();
79
+		return $page;
80
+	}else{
81
+	
82
+	$values = array();
83
+	$keys = array();
84
+	foreach( $urlParts as $key => $value ){
85
+		if($key%2 == 0) {
86
+			$values[] = $value;
87
+		} else {
88
+			$keys[] = $value;
89
+		}
90
+	}
91
+	$page['params'] = array_combine($keys, $values);
92
+	}
93
+	
94
+	/*
95
+	//Solution Personnelle
96
+	 * http:// FQDN / var1 / var2 / ... / varN / page
97
+	 * 
98
+	 *
99
+	$url = $_SERVER['REQUEST_URI'];
100
+	$uri = parse_url($url);
101
+	parse_str(@$url['query'], $params);
102
+	$page['params'] = $params;
103
+	$urlParts = explode('/' , trim( $uri['path'] , '/' ));
104
+	
105
+	$nbParams = count($urlParts)-1;
106
+	$varPage = explode(".", $urlParts[$nbParams]); 
107
+	$page['name'] = $varPage[0];
108
+	for($i=0,$i<$nbParams,$i++){
109
+		
110
+	}
111
+	
112
+	(page['name'] == 'index' || page['name'] == '')?$page['name']='home':;
113
+	$pageFile = PAGES_PATH . DIRECTORY_SEPARATOR . $varPage . '.php';
114
+	if(!file_exists($pageFile)){
115
+		$page['name'] = 'error';
116
+	}
117
+	*/
118
+	$pageFile = PAGES_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
119
+	
120
+	if(!file_exists($pageFile)){
121
+		$page['name'] = 'error';
122
+	}
123
+	return $page;
124
+	
125
+}
0 126
\ No newline at end of file