[PHP][CLASS] Iets uit een value halen.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mitchell van de Ree

Mitchell van de Ree

28/07/2010 05:26:55
Quote Anchor link
Gegroet!

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)
PHP script in nieuw venster Selecteer het PHP script
1
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"]);
   }
 
PHP hulp

PHP hulp

05/08/2021 15:35:35
 
Nino M

Nino M

28/07/2010 08:57:10
Quote Anchor link
Afhankelijk van de mogelijkheden (formaat van SERVER_DESCRIPTION) zou ik kiezen voor de functie sscanf of preg_match
 
Pieter van Linschoten

Pieter van Linschoten

28/07/2010 10:22:45
Quote Anchor link
Zoiets?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
$data
= array();
$raw = explode(',',$this->_indexes['SERVER_DESCRIPTION']);
foreach($raw as $item){
    list($key,$val) = $explode('=',$item);
    $data[$key] = $val;
}


print_r($data);
?>
 
Mark L

Mark L

28/07/2010 13:20:53
Quote Anchor link
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.
 
Wesley Overdijk

wesley Overdijk

28/07/2010 13:22:48
Quote Anchor link
Het gewoon opslaan in een array, ipv een string.
 
Mitchell van de Ree

Mitchell van de Ree

29/07/2010 15:12:47
Quote Anchor link
In ieder geval bedankt. Ik heb het ondertussen al een beetje met hulp van een ICT-Student uitgevogeld en ben tot deze uitwerking gekomen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$parser
= new ServerDescriptionParser('Name=DJName,ID=1,Kind=DJ');
echo $parser->getId();  #1
echo $parser->getName(); #DJName
echo $parser->getKind(); #DJ
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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 ;
 }
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.