Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
// 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)
Пример #4
0
 /**
  * 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);
 }