Заметки

Заметки PHP

Найти английские символы в строке RegExp:

$login = "573f334ыва9";
if (preg_match('/[A-Za-z]/', $login)) {
    echo 'ok';
} else {
    echo 'fail';
}

Выведет ok

PHP RegExp как извлечь из строки только цифры:

$str = preg_replace("/[^0-9]/", '', $str);

Удалить пустые теги из XML

Если у вас simplexml тогда вам не повезло , потому что в нем не работает флаг LIBXML_NOEMPTYTAG. Придется удалять пустые теги через XPATH

foreach( $this->xml->xpath('/child::*//*[not(*) and not(text()[normalize-space()])]') as $emptyElement ) {
    unset( $emptyElement[0] );
}

Возможно также перевести simplexml to DOMDocument,(но тогда могут возникнуть проблемы с кодировкой):

$xml = new SimpleXMLElement('');
$child1 = $xml->addChild('child1');
$child1->addChild('child2', "value");
$child1->addChild('noValue', '');
$dom_sxe = dom_import_simplexml($xml);  // Returns a DomElement object

$dom_output = new DOMDocument('1.0');
$dom_output->formatOutput = true;
$dom_sxe = $dom_output->importNode($dom_sxe, true);
$dom_sxe = $dom_output->appendChild($dom_sxe);

echo $dom_output->saveXML($dom_output, LIBXML_NOEMPTYTAG);
Афоризм дня:
Кто громоздит злодейство на злодейство, свой множит страх. (626)

Leave a reply