substr_count() static public method

See also: http://ca.php.net/manual/en/function.substr_count.php
static public substr_count ( $haystack, $needle ) : integer
$haystack string Input string to search
$needle string String to search within $haystack for
return integer Count of number of times $needle appeared in $haystack
Esempio n. 1
0
 /**
  * Parse SQL content into individual SQL statements.
  * @param $sql string
  * @return array
  */
 function &parseStatements(&$sql)
 {
     $statements = array();
     $statementsTmp = explode($this->statementDelim, $sql);
     $currentStatement = '';
     $numSingleQuotes = $numEscapedSingleQuotes = 0;
     // This method for parsing the SQL statements was adapted from one used in phpBB (http://www.phpbb.com/)
     for ($i = 0, $count = count($statementsTmp); $i < $count; $i++) {
         // Get total number of single quotes in string
         $numSingleQuotes += PKPString::substr_count($statementsTmp[$i], "'");
         // Get number of escaped single quotes
         $numEscapedSingleQuotes += PKPString::regexp_match_all("/(?<!\\\\)(\\\\\\\\)*\\\\'/", $statementsTmp[$i], $matches);
         $currentStatement .= $statementsTmp[$i];
         if (($numSingleQuotes - $numEscapedSingleQuotes) % 2 == 0) {
             // Even number of unescaped single quotes, so statement must be complete
             if (trim($currentStatement) !== '') {
                 array_push($statements, trim($currentStatement));
             }
             $currentStatement = '';
             $numSingleQuotes = $numEscapedSingleQuotes = 0;
         } else {
             // The statement is not complete, the delimiter must be inside the statement
             $currentStatement .= $this->statementDelim;
         }
     }
     return $statements;
 }