- var_dump: documentation ( source)
- strcmp: documentation ( source)
- preg_match: documentation ( source)
- explode: documentation ( source)
- strtolower: documentation ( source)
<?php
function _prepareSkuParseRules(){
$structure = array();
$skuStructure = "[#name]-[Stoffgruppe]-[Groesse]-[:Ausfuehrung]-[:Matratze]";
$segments = explode("-", $skuStructure);
foreach($segments as $segment){
$segmentInfo = array();
//check if segment is fixed
if(!preg_match('/^\[(#|:)?([^\]#]*)\]$/', $segment, $matches)){
//is fixed value
$segmentInfo["type"] = "provided";
$segmentInfo["namespace"] = "both";
$segmentInfo["value"] = $matches[2];
}else{
if(isset($matches[1]) && !empty($matches[1]) && strcmp($matches[1], "#")==0){
$segmentInfo["type"] = "provided";
$segmentInfo["namespace"] = "both";
//is registered variable name
switch($matches[2]){
case "name": $segmentInfo["value"] = "modell"; break;
}
}else{
if(isset($matches[1]) && !empty($matches[1]) && strcmp($matches[1], ":")==0){
$segmentInfo["namespace"] = "simple";
}else{
$segmentInfo["namespace"] = "both";
}
$segmentInfo["type"] = "field";
$segmentInfo["fieldname"] = $matches[2];
}
}
$structure[] = $segmentInfo;
}
var_dump($structure);
}
_prepareSkuParseRules();
echo strtolower("This-is-my-Segmentation-test");