23#if defined(HAVE_LIBXML) && defined(HAVE_DOM)
37static bool dom_convert_number_unsigned(
dom_object *intern,
zend_long input,
unsigned int *output)
40 if (php_dom_follow_spec_intern(intern)) {
41 *output = (
unsigned int) input;
90 length = xmlUTF8Strlen(nodep->content);
121 const xmlChar *cur = php_dom_get_content_or_empty(node);
123 length = xmlUTF8Strlen(cur);
129 if (!dom_convert_number_unsigned(intern, offset_input, &
offset) || !dom_convert_number_unsigned(intern, count_input, &
count)) {
133 if (
offset > (
unsigned int)length) {
142 substring = xmlUTF8Strsub(cur, (
int)
offset, (
int)
count);
169 xmlTextConcat(nodep, BAD_CAST
arg, arg_len);
191 xmlChar *first, *second;
207 const xmlChar *cur = php_dom_get_content_or_empty(node);
209 length = xmlUTF8Strlen(cur);
216 if (!dom_convert_number_unsigned(intern, offset_input, &
offset)) {
220 if (
offset > (
unsigned int)length) {
225 first = xmlUTF8Strndup(cur, (
int)
offset);
226 second = xmlUTF8Strsub(cur, (
int)
offset, length - (
int)
offset);
228 xmlNodeSetContent(node, first);
229 xmlNodeAddContent(node, BAD_CAST
arg);
230 xmlNodeAddContent(node, second);
258 xmlChar *substring, *second;
272 const xmlChar *cur = php_dom_get_content_or_empty(node);
274 length = xmlUTF8Strlen(cur);
281 if (!dom_convert_number_unsigned(intern, count_input, &
count)) {
286 substring = xmlUTF8Strsub(cur, 0, (
int)
offset);
296 substring = xmlStrcat(substring, second);
298 xmlNodeSetContent(node, substring);
326 xmlChar *substring, *second =
NULL;
342 const xmlChar *cur = php_dom_get_content_or_empty(node);
344 length = xmlUTF8Strlen(cur);
351 if (!dom_convert_number_unsigned(intern, count_input, &
count)) {
356 substring = xmlUTF8Strsub(cur, 0, (
int)
offset);
369 substring = xmlStrcat(substring, BAD_CAST
arg);
370 substring = xmlStrcat(substring, second);
372 xmlNodeSetContent(node, substring);
count(Countable|array $value, int $mode=COUNT_NORMAL)
zend_result dom_characterdata_length_read(dom_object *obj, zval *retval)
zend_result dom_characterdata_data_read(dom_object *obj, zval *retval)
zend_result dom_characterdata_data_write(dom_object *obj, zval *newval)
#define DOM_PROP_NODE(type, name, obj)
void php_dom_throw_error(dom_exception_code error_code, bool strict_error)
bool dom_get_strict_error(php_libxml_ref_obj *document)
#define DOM_GET_OBJ(__ptr, __id, __prtype, __intern)
void php_dom_get_content_into_zval(const xmlNode *nodep, zval *target, bool default_is_null)
php_libxml_ref_obj * document
struct _dom_object dom_object
#define INTERNAL_FUNCTION_PARAMETERS
#define INTERNAL_FUNCTION_PARAM_PASSTHRU
ZEND_API zend_result zend_parse_parameters(uint32_t num_args, const char *type_spec,...)
#define RETVAL_EMPTY_STRING()
struct _zend_string zend_string
#define ZEND_LONG_INT_OVFL(zlong)
ZEND_RESULT_CODE zend_result