|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2005-09-12 10:37 UTC] derick@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Nov 06 10:00:01 2025 UTC |
Description: ------------ strtok() ignores repeats of "arg2" ie. needle, and treats it as a single occurance, skipping all repetitions Reproduce code: --------------- $query = "wtf ? omg ? wtf ???, ?"; $arguments = array(1,2,3,4,5,6); var_dump($query); $sql = strtok($query,"?"); var_dump($sql); $retval = ""; while ($sql!==false) { $wasempty = empty($arguments); $val = array_shift($arguments); $retval .= $sql; if (!is_null($val) || !$wasempty) { $retval .= "'".$this->escape($val).'\''; } $sql = strtok("?"); var_dump($sql); } echo $retval; Expected result: ---------------- string(22) "wtf ? omg ? wtf ???, ?" string(4) "wtf " string(5) " omg " string(5) " wtf " string(0) "" string(0) "" string(2) ", " bool(false) wtf '1' omg '2' wtf '3''4''5', '6' Actual result: -------------- string(22) "wtf ? omg ? wtf ???, ?" string(4) "wtf " string(5) " omg " string(5) " wtf " string(2) ", " bool(false) wtf '1' omg '2' wtf '3', '4'