Ok, dans le cas où l'on :
- est "in_string" pour une chaîne commençant par ' ou ";
It true that when not in string we ca look for the next interesting char with a regexp like ''|"|`|#|; and then decide what to do with a select/case. Well... I'm not sure that this will bring better performances... usually, there is not much characters between an end of string and the next interesting character.
- on a trouvé le pendant de l'un de ces caractères plus avant dans la chaîne
On pourrait peut-être tenter de :
- utiliser un expression régulière du type ereg('([]*)' . $char, $sql, $part) et mesurer la taille de $part[1] pour determiner s'il s'agit bien de la fin de chaine ou pas;
Will it really be faster ? If you have big text strings with few quotes in it, yes. But before using ereg(), you have to do some substr() (which can cost much time), don't you ?
- sinon réiterer la recherche sur la sous-chaine qui démarre à la position du caractère précédemment trouvé + 1
Well. If you want to test such an idea, you can. In my opinion substr() has quite a heavy cost...
Benjamin