[PHP][CLASS] Iets uit een value halen.
Ik heb een vraagje. Ik heb namelijk een Class gemaakt voor meerdere radioscripten. Alleen nu heb ik een vraagje.
Hoe kan ik de SERVER_DESCRIPTION (Name=DitisdeDJNaam,ID=1,Kind=DJ) helemaal uit elkaar knippen en dan wat er achter de = staat bij de juiste class krijgen? Want, de DJ Naam, ID en Kind verschillen soms nogal van letters. Dus ik kan niets met substr(); denk ik.
Alvast bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
function getKind() {
return($this->_values[$this->_indexes["SERVER_DESCRIPTION"][0]]["value"]);
}
function getName() {
return($this->_values[$this->_indexes["SERVER_DESCRIPTION"][0]]["value"]);
}
function getID() {
return($this->_values[$this->_indexes["SERVER_DESCRIPTION"][0]]["value"]);
}
Afhankelijk van de mogelijkheden (formaat van SERVER_DESCRIPTION) zou ik kiezen voor de functie sscanf of preg_match
waar kom $this->_indexes['SERVER_DESCRIPTION'] vandaan? Als dit elke keer opnieuw moet worden gestript (en hij zijn vaste waarden) dan kun je ze denk ik beter los bewaren. Dat scheelt tijd/kracht.
Het gewoon opslaan in een array, ipv een string.
Code (php)
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
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
<?php
class ServerDescriptionParser
{
protected
$_pairs = array();
public function __construct($description){
parse_str(
str_replace(
',',
'&',
$description
),
$this->_pairs
);
}
public function getName(){
return $this->getValue('Name');
}
public function getId(){
return $this->getValue('ID');
}
public function getKind(){
return $this->getValue('Kind');
}
protected function getValue($key){
return array_key_exists($key, $this->_pairs) ? $this->_pairs[$key] : null ;
}
}
?>
class ServerDescriptionParser
{
protected
$_pairs = array();
public function __construct($description){
parse_str(
str_replace(
',',
'&',
$description
),
$this->_pairs
);
}
public function getName(){
return $this->getValue('Name');
}
public function getId(){
return $this->getValue('ID');
}
public function getKind(){
return $this->getValue('Kind');
}
protected function getValue($key){
return array_key_exists($key, $this->_pairs) ? $this->_pairs[$key] : null ;
}
}
?>