Hi,

I'm working on ext/id3 (proposed in pecl) and I'm currently experiencing a problem.
I got a function that is used to update the information in an ID3 tag. The user passes an array and I update all information that has been passed. One of the possible tokens is a genre ID which is represented by an integer:


$new = array(
                'title' => 'My Song',
                'genre' => 23
        );

Now I need to write the character that represents 34 to the stream. Using

  zend_hash_get_current_data(array, (void**) &data);

I copy the value 23 into data. Then I convert it to long, if the value is not a long already:

  convert_to_long(*data);

And now I move the pointer to the position where the genre ID is stored:

  php_stream_seek(stream, ID3_SEEK_V1_GENRE, SEEK_END);

But I do not know how to write the value to the stream

  php_stream_write(stream, (char*)Z_LVAL_P(*data), 1);

This does not produce the result I need, instead the file contains 48 at this position.
If I return RETURN_LONG(Z_LVAL_P(*data); I get 23 as expected.


Hope anybody is able to help or direct me to the correct mailinglist if internals is not the appropriate list.

Best regards,

Stephan

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to