Many vcf files use lowercase property names and this class fails to parse them. The variable "$left" needs to be forced to uppercase inside "ComponentSet::read_self".
Also support for "QUOTED-PRINTABLE" encoding is missing, but ease to add under "imcProperty.php". I can share my customized code if anybody wishes (i'm not familiar with this site and don't know how to contribute).
Otherwise, thanks a lot for this class, it is very useful.
CPK Smithies - 2013-08-07 22:05:49 - In reply to message 1 from Vlad
Thanks for prompting me to check the RFCs. In fact property names are supposed to be case-insensitive. I don't like making $left upper case in ComponentSet::read_self() as this will also affect the case of parameter values, which might lead to unintended consequences. I have therefore forced $PropName upper case in Property::factory() instead.
As for quoted-printable encoding, this is not mentioned in the standards specifications (that I've read). I'd be grateful for an example where it is used, so I can see how it is named in the ENCODING parameter value. Meanwhile I have I hope provided basic support, although I'm somewhat working in the dark.
I hope to upload new versions of imcComponent.php and imcProperty.php shortly.
Vlad - 2013-08-08 09:08:26 - In reply to message 2 from CPK Smithies
Thanks for the quick reply. You know the code better, my uppercase suggestion was just a quick workaround for everybody else.
I don't have experience with vCards but when I started working with them, it just happened that the first test vCard I used was using the QP encoding. Here's a test vCard (with both lowercase props and the encoding):
fn;quoted-printable:domain.tld=C2=AE John Doe
tel;work:+123 123 123 123
tel;cell:+123 123 123 123
On the Wikipedia page, the v2.1 example also includes this encoding, in a slightly different form: http://en.wikipedia.org/wiki/VCard#vCard_2.1