Switch strstr to str_contains
authorcolemanw <coleman@civicrm.org>
Mon, 27 Nov 2023 18:54:21 +0000 (13:54 -0500)
committercolemanw <coleman@civicrm.org>
Mon, 27 Nov 2023 18:54:21 +0000 (13:54 -0500)
When cast to boolean by a conditional, these 2 functions behave identically, but str_contains is more readable

28 files changed:
CRM/Case/BAO/Case.php
CRM/Case/XMLProcessor/Report.php
CRM/Contact/BAO/Query.php
CRM/Contact/Form/GroupContact.php
CRM/Contact/Form/Search/Builder.php
CRM/Contribute/Form/Contribution/Confirm.php
CRM/Core/BAO/CustomQuery.php
CRM/Core/BAO/CustomValue.php
CRM/Core/BAO/Mapping.php
CRM/Core/Form/Renderer.php
CRM/Core/Invoke.php
CRM/Core/Menu.php
CRM/Core/Page/AJAX/Location.php
CRM/Custom/Form/CustomData.php
CRM/Event/BAO/Query.php
CRM/Export/BAO/ExportProcessor.php
CRM/Export/Form/Select.php
CRM/Report/Form/Activity.php
CRM/Report/Page/Instance.php
CRM/Report/Page/Report.php
CRM/Report/Utils/Report.php
CRM/Utils/System.php
api/v3/CustomValue.php
api/v3/utils.php
ext/civigrant/CRM/Grant/BAO/Query.php
ext/civigrant/CRM/Report/Form/Grant/Statistics.php
ext/search_kit/CRM/Search/Upgrader.php
ext/search_kit/Civi/Search/Meta.php

index 3361bd91380297a0337517248e4682c2ea67ddc7..9c2e025b2c024df8c103f1e29157cb25c5ae302b 100644 (file)
@@ -639,7 +639,7 @@ HERESQL;
 
     $order = NULL;
     if (!empty($params['sortBy'])) {
-      if (strstr($params['sortBy'], 'date ')) {
+      if (str_contains($params['sortBy'], 'date ')) {
         $params['sortBy'] = str_replace('date', 'activity_date_time', $params['sortBy']);
       }
       $order = "ORDER BY " . $params['sortBy'];
index 68ce356371df5a9dd381b1c19437232a4a9c19bb..6e42fb4bf300198e4149e0331c57ebc91c5fffb6 100644 (file)
@@ -534,7 +534,7 @@ WHERE      a.id = %1
           if ($value) {
             // Note: this is already taken care in getDisplayValue above, but sometimes
             // strings like '^A^A' creates problem. So to fix this special case -
-            if (strstr($value, CRM_Core_DAO::VALUE_SEPARATOR)) {
+            if (str_contains($value, CRM_Core_DAO::VALUE_SEPARATOR)) {
               $value = trim($value, CRM_Core_DAO::VALUE_SEPARATOR);
             }
             if (($typeValue['type'] ?? NULL) == 'String' ||
index 6fb4936ad15fd58ff9bd04e5ec3276c22294079c..c71706d2e7c2a4435fa9dd62660966ab534f6e63 100644 (file)
@@ -3364,7 +3364,7 @@ WHERE  $smartGroupClause
       elseif ($op == '!=') {
         $this->_where[$grouping][] = "{$etTable}.entity_id NOT IN (SELECT entity_id FROM civicrm_entity_tag cet WHERE cet.entity_table = 'civicrm_contact' AND " . self::buildClause("cet.tag_id", '=', $value, 'Int') . ")";
       }
-      elseif ($op == '=' || strstr($op, 'IN')) {
+      elseif ($op == '=' || str_contains($op, 'IN')) {
         $op = ($op == '=') ? 'IN' : $op;
         $this->_where[$grouping][] = "{$etTable}.tag_id $op ( $value )";
       }
@@ -4116,7 +4116,7 @@ WHERE  $smartGroupClause
 
     if (self::caseImportant($op)) {
       $value = implode("[[:cntrl:]]|[[:cntrl:]]", (array) $value);
-      $op = (strstr($op, '!') || strstr($op, 'NOT')) ? 'NOT RLIKE' : 'RLIKE';
+      $op = (str_contains($op, '!') || str_contains($op, 'NOT')) ? 'NOT RLIKE' : 'RLIKE';
       $value = "[[:cntrl:]]" . $value . "[[:cntrl:]]";
     }
 
@@ -5364,7 +5364,7 @@ civicrm_relationship.start_date > {$today}
       }
 
       $date = $format = NULL;
-      if (strstr($op, 'IN')) {
+      if (str_contains($op, 'IN')) {
         $format = [];
         foreach ($value as &$date) {
           $date = CRM_Utils_Date::processDate($date, NULL, FALSE, $dateFormat);
index efdbdece0c782269de1505043c5f4bca1f7e8e0b..b865f568db99091c7fc7e7526779d607790292c7 100644 (file)
@@ -107,7 +107,7 @@ class CRM_Contact_Form_GroupContact extends CRM_Core_Form {
     if (count($groupSelect) > 1) {
       $session = CRM_Core_Session::singleton();
       // user dashboard
-      if (strstr($session->readUserContext(), 'user')) {
+      if (str_contains($session->readUserContext(), 'user')) {
         $msg = ts('Join a Group');
       }
       else {
index 88201ec846637001f7772d1f86d9ad2bd35f9989..44108ea0d814c64b72d3d7cfdf1be348e6966184 100644 (file)
@@ -199,7 +199,7 @@ class CRM_Contact_Form_Search_Builder extends CRM_Contact_Form_Search {
             $fldType = $fldValue['type'] ?? NULL;
             $type = CRM_Utils_Type::typeToString($fldType);
 
-            if (strstr($v[1], 'IN')) {
+            if (str_contains($v[1], 'IN')) {
               if (empty($v[2])) {
                 $errorMsg["value[$v[3]][$v[4]]"] = ts("Please enter a value.");
               }
@@ -219,7 +219,7 @@ class CRM_Contact_Form_Search_Builder extends CRM_Contact_Form_Search {
 
           if ($type && empty($errorMsg)) {
             // check for valid format while using IN Operator
-            if (strstr($v[1], 'IN')) {
+            if (str_contains($v[1], 'IN')) {
               if (!is_array($v[2])) {
                 $inVal = trim($v[2]);
                 //checking for format to avoid db errors
index 7ae0b06378625540534d4152a985fa06baf58320..17fe773aa3c88571b39a84fc810cef7ccc580cf5 100644 (file)
@@ -322,7 +322,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
       $blocks = ['email', 'phone', 'im', 'url', 'openid'];
       foreach ($this->_params['onbehalf'] as $loc => $value) {
         $field = $typeId = NULL;
-        if (strstr($loc, '-')) {
+        if (str_contains($loc, '-')) {
           [$field, $locType] = explode('-', $loc);
         }
 
@@ -411,7 +411,7 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
             }
           }
         }
-        elseif (strstr($loc, 'custom')) {
+        elseif (str_contains($loc, 'custom')) {
           if ($value && isset($this->_params['onbehalf']["{$loc}_id"])) {
             $value = $this->_params['onbehalf']["{$loc}_id"];
           }
index 7948b7eaf0ee9f752f3ab6fdec2314e71db4de0a..c448d3ce2b4d7e68cc3133a1ac924c684de9186e 100644 (file)
@@ -256,7 +256,7 @@ class CRM_Core_BAO_CustomQuery {
                 $value = str_replace(",", "$sp|$sp", $value);
                 $value = str_replace(['[:comma:]', '(', ')'], [',', '[(]', '[)]'], $value);
 
-                $op = (strstr($op, '!') || strstr($op, 'NOT')) ? 'NOT RLIKE' : 'RLIKE';
+                $op = (str_contains($op, '!') || str_contains($op, 'NOT')) ? 'NOT RLIKE' : 'RLIKE';
                 $value = $sp . $value . $sp;
                 if (!$wildcard) {
                   foreach (explode("|", $value) as $val) {
index 485b231cc4ba690fa835e851d28d72bcab025562..8b965803db0973293584494b13ecb495ff435ea0 100644 (file)
@@ -172,7 +172,7 @@ class CRM_Core_BAO_CustomValue extends CRM_Core_DAO {
       }
       elseif (($htmlType == 'TextArea' ||
           ($htmlType == 'Text' && $dataType == 'String')
-        ) && strstr($formValues[$key], '%')
+        ) && str_contains($formValues[$key], '%')
       ) {
         $formValues[$key] = ['LIKE' => $formValues[$key]];
       }
index 583fa8de597da77a5a0cf3f854460cc79b7e6c5a..804e3b4369aac74099dd14906fdd9b05d9ce9527 100644 (file)
@@ -606,7 +606,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping implements \Civi\Core\Ho
           }
 
           // CRM-14983: verify if values are comma separated convert to array
-          if (!is_array($value) && strstr($params['operator'][$key][$k], 'IN')) {
+          if (!is_array($value) && str_contains($params['operator'][$key][$k], 'IN')) {
             $value = explode(',', $value);
             $value = [$params['operator'][$key][$k] => $value];
           }
index 11f40d86ed84a8ab3d3ebf187becd77badac2520..a6c4e687684a9cd917e32bd5d12234942b6218a3 100644 (file)
@@ -115,7 +115,7 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty {
         $el['html'] = $date . '<input type="hidden" value="' . $element->getValue() . '" name="' . $element->getAttribute('name') . '">';
       }
       // Render html for wysiwyg textareas
-      if ($el['type'] == 'textarea' && isset($element->_attributes['class']) && strstr($element->_attributes['class'], 'wysiwyg')) {
+      if ($el['type'] == 'textarea' && isset($element->_attributes['class']) && str_contains($element->_attributes['class'], 'wysiwyg')) {
         $el['html'] = '<span class="crm-frozen-field">' . $el['value'] . '</span>';
       }
       else {
index 64c1f77460568817579a40178fd8de605c74d36a..b2a3e75550a9af203b281ce0e2b4824973865f3e 100644 (file)
@@ -303,11 +303,11 @@ class CRM_Core_Invoke {
           unset($pageArgs['mode']);
         }
         $title = $item['title'] ?? NULL;
-        if (strstr($item['page_callback'], '_Page') || strstr($item['page_callback'], '\\Page\\')) {
+        if (str_contains($item['page_callback'], '_Page') || str_contains($item['page_callback'], '\\Page\\')) {
           $object = new $item['page_callback']($title, $mode);
           $object->urlPath = explode('/', $_GET[$config->userFrameworkURLVar]);
         }
-        elseif (strstr($item['page_callback'], '_Controller') || strstr($item['page_callback'], '\\Controller\\')) {
+        elseif (str_contains($item['page_callback'], '_Controller') || str_contains($item['page_callback'], '\\Controller\\')) {
           $addSequence = 'false';
           if (isset($pageArgs['addSequence'])) {
             $addSequence = $pageArgs['addSequence'];
index 2a23ee2053279b11a4e43688699c1941744eb6e4..c9a9ff3159baf4aacc05bc90cde65a602585dbb8 100644 (file)
@@ -635,7 +635,7 @@ UNION (
       }
     }
 
-    if (strstr($path, 'report/instance')) {
+    if (str_contains($path, 'report/instance')) {
       $args = explode('/', $path);
       if (is_numeric(end($args))) {
         $menuPath['path'] .= '/' . end($args);
index 0e47c0a46600d4dea37ab0fb9fe44548aa162f53..2e2ce83ca6f7dfdc7c5816ebf4fb921c7fe969d6 100644 (file)
@@ -155,7 +155,7 @@ class CRM_Core_Page_AJAX_Location {
               $elements["onbehalf_{$key}"]['value'][$k] = $v;
             }
           }
-          elseif (strstr($htmlType, 'Multi-Select')) {
+          elseif (str_contains($htmlType, 'Multi-Select')) {
             $elements["onbehalf_{$key}"]['type'] = 'Multi-Select';
             $elements["onbehalf_{$key}"]['value'] = array_values($defaults[$key]);
           }
index b063936c813acce4ce7c855c5441def892b94a46..d440ccad1c6f2f65f67c82a08a93249e2e0f35a7 100644 (file)
@@ -132,7 +132,7 @@ class CRM_Custom_Form_CustomData {
 
     $gid = (isset($form->_groupID)) ? $form->_groupID : NULL;
     $getCachedTree = $form->_getCachedTree ?? TRUE;
-    if (!is_array($subType) && strstr(($subType ?? ''), CRM_Core_DAO::VALUE_SEPARATOR)) {
+    if (!is_array($subType) && str_contains(($subType ?? ''), CRM_Core_DAO::VALUE_SEPARATOR)) {
       CRM_Core_Error::deprecatedWarning('Using a CRM_Core_DAO::VALUE_SEPARATOR separated subType deprecated, use a comma-separated string instead.');
       $subType = str_replace(CRM_Core_DAO::VALUE_SEPARATOR, ',', trim($subType, CRM_Core_DAO::VALUE_SEPARATOR));
     }
index f89d58614d66af201e6a29bb8897e481f206c17d..9bffff952c229bde08699d8b039760b61cc8fbf2 100644 (file)
@@ -270,13 +270,13 @@ class CRM_Event_BAO_Query extends CRM_Core_BAO_Query {
         $exEventId = '';
         if ($query->_where[$grouping]) {
           foreach ($query->_where[$grouping] as $key => $val) {
-            if (strstr($val, 'civicrm_event.id =')) {
+            if (str_contains($val, 'civicrm_event.id =')) {
               $exEventId = $val;
               $extractEventId = explode(" ", $val);
               $value = $extractEventId[2];
               $where = $query->_where[$grouping][$key];
             }
-            elseif (strstr($val, 'civicrm_event.id IN')) {
+            elseif (str_contains($val, 'civicrm_event.id IN')) {
               //extract the first event id if multiple events are selected
               preg_match('/civicrm_event.id IN \(\"(\d+)/', $val, $matches);
               $value = $matches[1];
@@ -405,8 +405,8 @@ class CRM_Event_BAO_Query extends CRM_Core_BAO_Query {
           $op = key($value);
           $value = $value[$op];
         }
-        if (!strstr($op, 'NULL') && !strstr($op, 'EMPTY') && !strstr($op, 'LIKE')) {
-          $regexOp = (strstr($op, '!') || strstr($op, 'NOT')) ? 'NOT REGEXP' : 'REGEXP';
+        if (!str_contains($op, 'NULL') && !str_contains($op, 'EMPTY') && !str_contains($op, 'LIKE')) {
+          $regexOp = (str_contains($op, '!') || str_contains($op, 'NOT')) ? 'NOT REGEXP' : 'REGEXP';
           $regexp = "([[:cntrl:]]|^)" . implode('([[:cntrl:]]|$)|([[:cntrl:]]|^)', (array) $value) . "([[:cntrl:]]|$)";
           $query->_where[$grouping][] = CRM_Contact_BAO_Query::buildClause("civicrm_participant.$name", $regexOp, $regexp, 'String');
         }
index 9a2002d72e1f1e211eb0c6a7b547a33fc0018a3e..770b8e09121970972ebae2219471ade60d1e9ef2 100644 (file)
@@ -1010,7 +1010,7 @@ class CRM_Export_BAO_ExportProcessor {
         if ($field == 'provider_id' || $field == 'im_provider') {
           $fieldValue = $imProviders[$fieldValue] ?? NULL;
         }
-        elseif (strstr($field, 'master_id')) {
+        elseif (str_contains($field, 'master_id')) {
           // @todo - why not just $field === 'master_id'  - what else would it be?
           $masterAddressId = $iterationDAO->$field ?? NULL;
           // get display name of contact that address is shared.
index 2c83bc0e824d316331b475c97ba300ad74d1505a..42601a11e5a85396b79fbbef0caafbfac62feeed 100644 (file)
@@ -91,7 +91,7 @@ class CRM_Export_Form_Select extends CRM_Core_Form_Task {
     $this->_matchingContacts = FALSE;
     if (($values['radio_ts'] ?? NULL) == 'ts_sel') {
       foreach ($values as $key => $value) {
-        if (strstr($key, 'mark_x')) {
+        if (str_contains($key, 'mark_x')) {
           $count++;
         }
         if ($count > 2) {
index 536d6695f9c3d2cbc9e51ac3682c2bf9348cf68b..38f7627825e001257954630909bb0616018646d3 100644 (file)
@@ -432,12 +432,12 @@ class CRM_Report_Form_Activity extends CRM_Report_Form {
     if ($recordType == 'target') {
       // @todo - fix up the way the tables are declared in construct & remove this.
       foreach ($this->_selectClauses as $key => $clause) {
-        if (strstr($clause, 'civicrm_contact_assignee.') ||
-          strstr($clause, 'civicrm_contact_source.') ||
-          strstr($clause, 'civicrm_email_assignee.') ||
-          strstr($clause, 'civicrm_email_source.') ||
-          strstr($clause, 'civicrm_phone_assignee.') ||
-          strstr($clause, 'civicrm_phone_source.')
+        if (str_contains($clause, 'civicrm_contact_assignee.') ||
+          str_contains($clause, 'civicrm_contact_source.') ||
+          str_contains($clause, 'civicrm_email_assignee.') ||
+          str_contains($clause, 'civicrm_email_source.') ||
+          str_contains($clause, 'civicrm_phone_assignee.') ||
+          str_contains($clause, 'civicrm_phone_source.')
         ) {
           $removeKeys[] = $key;
           unset($this->_selectClauses[$key]);
@@ -447,13 +447,13 @@ class CRM_Report_Form_Activity extends CRM_Report_Form {
     elseif ($recordType == 'assignee') {
       // @todo - fix up the way the tables are declared in construct & remove this.
       foreach ($this->_selectClauses as $key => $clause) {
-        if (strstr($clause, 'civicrm_contact_target.') ||
-          strstr($clause, 'civicrm_contact_source.') ||
-          strstr($clause, 'civicrm_email_target.') ||
-          strstr($clause, 'civicrm_email_source.') ||
-          strstr($clause, 'civicrm_phone_target.') ||
-          strstr($clause, 'civicrm_phone_source.') ||
-          strstr($clause, 'civicrm_address_')
+        if (str_contains($clause, 'civicrm_contact_target.') ||
+          str_contains($clause, 'civicrm_contact_source.') ||
+          str_contains($clause, 'civicrm_email_target.') ||
+          str_contains($clause, 'civicrm_email_source.') ||
+          str_contains($clause, 'civicrm_phone_target.') ||
+          str_contains($clause, 'civicrm_phone_source.') ||
+          str_contains($clause, 'civicrm_address_')
         ) {
           $removeKeys[] = $key;
           unset($this->_selectClauses[$key]);
@@ -463,13 +463,13 @@ class CRM_Report_Form_Activity extends CRM_Report_Form {
     elseif ($recordType == 'source') {
       // @todo - fix up the way the tables are declared in construct & remove this.
       foreach ($this->_selectClauses as $key => $clause) {
-        if (strstr($clause, 'civicrm_contact_target.') ||
-          strstr($clause, 'civicrm_contact_assignee.') ||
-          strstr($clause, 'civicrm_email_target.') ||
-          strstr($clause, 'civicrm_email_assignee.') ||
-          strstr($clause, 'civicrm_phone_target.') ||
-          strstr($clause, 'civicrm_phone_assignee.') ||
-          strstr($clause, 'civicrm_address_')
+        if (str_contains($clause, 'civicrm_contact_target.') ||
+          str_contains($clause, 'civicrm_contact_assignee.') ||
+          str_contains($clause, 'civicrm_email_target.') ||
+          str_contains($clause, 'civicrm_email_assignee.') ||
+          str_contains($clause, 'civicrm_phone_target.') ||
+          str_contains($clause, 'civicrm_phone_assignee.') ||
+          str_contains($clause, 'civicrm_address_')
         ) {
           $removeKeys[] = $key;
           unset($this->_selectClauses[$key]);
@@ -480,16 +480,16 @@ class CRM_Report_Form_Activity extends CRM_Report_Form {
       $this->_selectClauses = $this->_selectAliasesTotal;
       foreach ($this->_selectClauses as $key => $clause) {
         // @todo - fix up the way the tables are declared in construct & remove this.
-        if (strstr($clause, 'civicrm_contact_contact_target') ||
-          strstr($clause, 'civicrm_contact_contact_assignee') ||
-          strstr($clause, 'civicrm_contact_contact_source') ||
-          strstr($clause, 'civicrm_phone_contact_source_phone') ||
-          strstr($clause, 'civicrm_phone_contact_assignee_phone') ||
-          strstr($clause, 'civicrm_email_contact_source_email') ||
-          strstr($clause, 'civicrm_email_contact_assignee_email') ||
-          strstr($clause, 'civicrm_email_contact_target_email') ||
-          strstr($clause, 'civicrm_phone_contact_target_phone') ||
-          strstr($clause, 'civicrm_address_')
+        if (str_contains($clause, 'civicrm_contact_contact_target') ||
+          str_contains($clause, 'civicrm_contact_contact_assignee') ||
+          str_contains($clause, 'civicrm_contact_contact_source') ||
+          str_contains($clause, 'civicrm_phone_contact_source_phone') ||
+          str_contains($clause, 'civicrm_phone_contact_assignee_phone') ||
+          str_contains($clause, 'civicrm_email_contact_source_email') ||
+          str_contains($clause, 'civicrm_email_contact_assignee_email') ||
+          str_contains($clause, 'civicrm_email_contact_target_email') ||
+          str_contains($clause, 'civicrm_phone_contact_target_phone') ||
+          str_contains($clause, 'civicrm_address_')
         ) {
           $this->_selectClauses[$key] = "GROUP_CONCAT(DISTINCT $clause SEPARATOR ';') as $clause";
         }
index a2dfca995ec952f770780ab47805cdcb08812191..3bb97b45594a4486a4b9a59a8812eac8f2d9c594 100644 (file)
@@ -58,7 +58,7 @@ class CRM_Report_Page_Instance extends CRM_Core_Page {
       $templateInfo['name'] = $reportClass;
     }
 
-    if (strstr($templateInfo['name'], '_Form') || !is_null($reportClass)) {
+    if (str_contains($templateInfo['name'], '_Form') || !is_null($reportClass)) {
       $instanceInfo = [];
       CRM_Report_BAO_ReportInstance::retrieve(['id' => $instanceId], $instanceInfo);
 
index 25c75264e3147caf588e0a1f1fafd5a1f1dd79a8..e0924d22838b5ac37ba13a87f81f30a3492e2a9c 100644 (file)
@@ -44,7 +44,7 @@ class CRM_Report_Page_Report extends CRM_Core_Page {
       $templateInfo['name'] = $reportClass;
     }
 
-    if (strstr(CRM_Utils_Array::value('name', $templateInfo), '_Form') || !is_null($reportClass)) {
+    if (str_contains($templateInfo['name'] ?? '', '_Form') || !is_null($reportClass)) {
       CRM_Utils_System::setTitle(ts('%1 - Template', [1 => $templateInfo['label']]));
       $this->assign('reportTitle', $templateInfo['label']);
 
index 2f91c687b88caf8d9e26b613a7d957c1613f3247..33e5f7342903e7c054cf26a09302ec57c8bcee85 100644 (file)
@@ -403,7 +403,7 @@ WHERE  inst.report_id = %1";
       $templateInfo = CRM_Core_OptionGroup::getRowValues('report_template', $optionVal, 'value');
       $obj = new CRM_Report_Page_Instance();
       $is_error = 0;
-      if (strstr(CRM_Utils_Array::value('name', $templateInfo), '_Form')) {
+      if (str_contains($templateInfo['name'] ?? '', '_Form')) {
         $instanceInfo = [];
         CRM_Report_BAO_ReportInstance::retrieve(['id' => $instanceId], $instanceInfo);
 
index f3359d58a0b28568095dcf308357b9590e3016c4..35643cb0f63844cdbb11ee53038a5ec05a5f87d4 100644 (file)
@@ -126,7 +126,7 @@ class CRM_Utils_System {
       $qs = explode('&', str_replace('&amp;', '&', $_SERVER['QUERY_STRING']));
       for ($i = 0, $cnt = count($qs); $i < $cnt; $i++) {
         // check first if exist a pair
-        if (strstr($qs[$i], '=') !== FALSE) {
+        if (str_contains($qs[$i], '=')) {
           [$name, $value] = explode('=', $qs[$i]);
           if ($name != $urlVar) {
             $name = rawurldecode($name);
@@ -260,20 +260,20 @@ class CRM_Utils_System {
     $query = self::makeQueryString($query);
 
     // Legacy handling for when the system passes around html escaped strings
-    if (strstr($query, '&amp;')) {
+    if (str_contains($query, '&amp;')) {
       $query = html_entity_decode($query);
     }
 
     // Extract fragment from path or query if munged together
-    if ($query && strstr($query, '#')) {
+    if ($query && str_contains($query, '#')) {
       [$path, $fragment] = explode('#', $query);
     }
-    if ($path && strstr($path, '#')) {
+    if ($path && str_contains($path, '#')) {
       [$path, $fragment] = explode('#', $path);
     }
 
     // Extract query from path if munged together
-    if ($path && strstr($path, '?')) {
+    if ($path && str_contains($path, '?')) {
       [$path, $extraQuery] = explode('?', $path);
       $query = $extraQuery . ($query ? "&$query" : '');
     }
@@ -493,7 +493,7 @@ class CRM_Utils_System {
 
     if ($referer && !empty($names)) {
       foreach ($names as $name) {
-        if (strstr($referer, $name)) {
+        if (str_contains($referer, $name)) {
           $url = $referer;
           break;
         }
@@ -1290,7 +1290,7 @@ class CRM_Utils_System {
     // convert ipV6 to ipV4
     if ($strictIPV4) {
       // this converts 'IPV4 mapped IPV6 address' to IPV4
-      if (filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) && strstr($address, '::ffff:')) {
+      if (filter_var($address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) && str_contains($address, '::ffff:')) {
         $address = ltrim($address, '::ffff:');
       }
     }
index 40feb5c6d557587a08421dc96ad74f8c1a912b52..bd77a64e4c27452f66197918f71dcbbccff9daff 100644 (file)
@@ -122,7 +122,7 @@ function civicrm_api3_custom_value_get($params) {
     'entityID' => $params['entity_id'],
     'entityType' => $params['entity_table'] ?? '',
   ];
-  if (strstr($getParams['entityType'], 'civicrm_')) {
+  if (str_contains($getParams['entityType'], 'civicrm_')) {
     $getParams['entityType'] = ucfirst(substr($getParams['entityType'], 8));
   }
   unset($params['entity_id'], $params['entity_table']);
index 189b6efdd60aa8dbf64db54092799c15f206984c..f5a7e89b818cf736ce09cf1af830bb4c99362bde 100644 (file)
@@ -637,7 +637,7 @@ function _civicrm_api3_dao_set_filter(&$dao, $params, $unique = TRUE, $extraSql
 
   //accept filters like filter.activity_date_time_high
   // std is now 'filters' => ..
-  if (strstr(implode(',', array_keys($params)), 'filter')) {
+  if (str_contains(implode(',', array_keys($params)), 'filter')) {
     if (isset($params['filters']) && is_array($params['filters'])) {
       foreach ($params['filters'] as $paramkey => $paramvalue) {
         _civicrm_api3_apply_filters_to_dao($paramkey, $paramvalue, $dao);
@@ -645,7 +645,7 @@ function _civicrm_api3_dao_set_filter(&$dao, $params, $unique = TRUE, $extraSql
     }
     else {
       foreach ($params as $paramkey => $paramvalue) {
-        if (strstr($paramkey, 'filter')) {
+        if (str_contains($paramkey, 'filter')) {
           _civicrm_api3_apply_filters_to_dao(substr($paramkey, 7), $paramvalue, $dao);
         }
       }
@@ -723,11 +723,11 @@ function _civicrm_api3_dao_set_filter(&$dao, $params, $unique = TRUE, $extraSql
  *   DAO object.
  */
 function _civicrm_api3_apply_filters_to_dao($filterField, $filterValue, &$dao) {
-  if (strstr($filterField, 'high')) {
+  if (str_contains($filterField, 'high')) {
     $fieldName = substr($filterField, 0, -5);
     $dao->whereAdd("($fieldName <= $filterValue )");
   }
-  if (strstr($filterField, 'low')) {
+  if (str_contains($filterField, 'low')) {
     $fieldName = substr($filterField, 0, -4);
     $dao->whereAdd("($fieldName >= $filterValue )");
   }
@@ -2489,7 +2489,7 @@ function _civicrm_api3_field_value_check(&$params, $fieldName, $type = NULL) {
 
   if (!empty($fieldValue) && is_array($fieldValue) &&
     (array_search(key($fieldValue), CRM_Core_DAO::acceptedSQLOperators()) ||
-      $type == 'String' && strstr(key($fieldValue), 'EMPTY'))
+      $type == 'String' && str_contains(key($fieldValue), 'EMPTY'))
   ) {
     $op = key($fieldValue);
     $fieldValue = $fieldValue[$op] ?? NULL;
index 22c8eb741faa95fcb752eadfa9c143aa26f7bc9a..977d64d5b41ab2045bd7ef8fac7d4724b084f1d0 100644 (file)
@@ -183,7 +183,7 @@ class CRM_Grant_BAO_Query extends CRM_Contact_BAO_Query_Interface {
       case 'grant_status_id':
       case 'grant_status':
 
-        if (strstr($name, 'type')) {
+        if (str_contains($name, 'type')) {
           $name = 'grant_type_id';
           $label = E::ts('Grant Type(s)');
         }
index 4c537404127cdcbcb0526b53cabccf080bdbe5b3..0ea5e629eaa62169082772b50a9ac7f59ec532b9 100644 (file)
@@ -421,7 +421,7 @@ SELECT COUNT({$this->_aliases['civicrm_grant']}.id) as count ,
       }
 
       foreach ($values as $customField => $customValue) {
-        if (strstr($customField, 'civicrm_value_')) {
+        if (str_contains($customField, 'civicrm_value_')) {
           $customFieldTitle = $this->_columnHeaders[$customField]['title'] ?? NULL;
           $customGroupTitle = explode('_custom', strstr($customField, 'civicrm_value_'));
           $customGroupTitle = $this->_columns[$customGroupTitle[0]]['group_title'];
index 24f573e1c5677f17402c51aa705cdb7609bcffd1..69ab6069228af8009d0e56d8aebdf0fc1cfc5914 100644 (file)
@@ -40,7 +40,7 @@ class CRM_Search_Upgrader extends CRM_Extension_Upgrader_Base {
     foreach ($savedSearches as $savedSearch) {
       $newAliases = [];
       foreach ($savedSearch['api_params']['select'] ?? [] as $i => $select) {
-        if (strstr($select, '(') && !strstr($select, ' AS ')) {
+        if (str_contains($select, '(') && !str_contains($select, ' AS ')) {
           $alias = CRM_Utils_String::munge(str_replace(')', '', $select), '_', 256);
           $newAliases[$select] = $alias;
           $savedSearch['api_params']['select'][$i] = $select . ' AS ' . $alias;
index 9fadf2364c8c746c98268cd3dcf312efcd6adcde..fe1120cb6059e8878d397566049f1888044b954b 100644 (file)
@@ -57,7 +57,7 @@ class Meta {
     ];
 
     foreach ($apiParams['select'] ?? [] as $select) {
-      if (strstr($select, ' AS ')) {
+      if (str_contains($select, ' AS ')) {
         $expr = SqlExpression::convert($select, TRUE);
         $label = $expr::getTitle();
         foreach ($expr->getFields() as $num => $fieldName) {