/** * Creates a Zend_LDAP_Filter_String. * * @param string $mask * @param string $value,... */ public function __construct($mask, $value) { $args = func_get_args(); array_shift($args); for ($i = 0; $i < count($args); $i++) { $args[$i] = self::escapeValue($args[$i]); } $filter = vsprintf($mask, $args); parent::__construct($filter); }
/** * Create a web friendly URL slug from a string. * * Although supported, transliteration is discouraged because * 1) most web browsers support UTF-8 characters in URLs * 2) transliteration causes a loss of information * * @author Sean Murphy <*****@*****.**> * @copyright Copyright 2012 Sean Murphy. All rights reserved. * @license http://creativecommons.org/publicdomain/zero/1.0/ * * @param string $str * @param array $options * * @return string */ public static function build($str, $options = array()) { $str = mb_convert_encoding((string) $str, 'UTF-8', mb_list_encodings()); $defaults = array('delimiter' => '-', 'limit' => null, 'lowercase' => true, 'replacements' => array(), 'transliterate' => true); // Merge options $options = array_merge($defaults, $options); // Make custom replacements $str = StringFilter::customReplace($str, $options['replacements']); // Transliterate characters to ASCII if ($options['transliterate']) { $str = StringTransformer::transliterateToASCII($str); } // Replace non-alphanumeric characters with our delimiter $str = preg_replace('/[^\\p{L}\\p{Nd}]+/u', $options['delimiter'], $str); // Remove duplicate delimiters $str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str); // Truncate slug to max. characters $str = mb_substr($str, 0, $options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8'), 'UTF-8'); // Remove delimiter from ends $str = trim($str, $options['delimiter']); return $options['lowercase'] ? StringTransformer::toLowercase($str) : $str; }
// In this example we will show why using name to lookup attribute can be // dangerous. $tPatientName = new Tag(0x0, 0x0); $de1 = $pubdict->GetDictEntryByName("Patient Name", $tPatientName); printf("Found %s", $tPatientName); // Indeed the attribute could not be found. Since DICOM 2003, Patient Name // has become Patient's Name. $tPatientsName = new Tag(); $de2 = $pubdict->GetDictEntryByName("Patient's Name", $tPatientsName); printf("Found: %s", $tPatientsName); // Let's try to read an arbitrary DICOM Attribute: $tDoseGridScaling = new Tag(); $de3 = $pubdict->GetDictEntryByName("Dose Grid Scaling", $tDoseGridScaling); printf("Found: %s", $tDoseGridScaling); if ($ds->FindDataElement($tDoseGridScaling)) { $sf = new StringFilter(); $sf->SetFile($file); printf("Attribute Value as String: %s", $sf->ToString($tDoseGridScaling)); // Let's check the name again: $pss = $sf->ToStringPair($tDoseGridScaling); printf("Attribute Name Checked: %s", $pss->first); printf("Attribute Value (string): %s", $pss->second); $dgs = $ds->GetDataElement($tDoseGridScaling); // Let's assume for a moment we knew the tag number: $at = new Tag(0x3004, 0xe); assert($at . GetTag() == $tDoseGridScaling); $at->SetFromDataSet($ds); // For the sake of long term maintenance, we will not write // that this particular attribute is stored as a double. What if // a user made a mistake. It is much safer to rely on GDCM internal // mechanism to deduce the VR::DS type (represented as a ieee double)
/** * Creates a new Zend_LDAP_Filter. * * @param string $attr * @param string $value * @param string $filtertype * @param string $prepend * @param string $append */ public function __construct($attr, $value, $filtertype, $prepend = null, $append = null) { $filter = self::_createFilterString($attr, $value, $filtertype, $prepend, $append); parent::__construct($filter); }