乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP-比較字符串部分與數(shù)組值

       印度阿三17 2019-11-19

      我有一個字符串在PHP中形成HTML選擇框.我也有一個數(shù)組.我想要的是:我想將選擇框的選項與數(shù)組元素進行比較,而只將與數(shù)組元素匹配的選項保留在選擇框中.
      以下是使概念更清晰的代碼.

      字符串形成選擇框為:

       $str = '<select name="options[45]" id="select_45" class=" required-entry product-custom-option" title=""? onchange="opConfig.reloadPrice()">
      <option value="" >-- Please Select --</option>
      <option value="76"? price="0" >Certified Networking </option>
      <option value="89"? price="0" >Certified Virtualization </option>
      <option value="90"? price="0" >Certified Expert Virtualization </option><option value="91"? price="0" >Certified  Mobility </option>
      <option value="92"? price="0" >Certified Professional Networking </option><option value="93"? price="0" >Certified Professional Virtualization </option>
      </select>';
      

      數(shù)組是:

      $array = array('-- Please Select --','Certified Networking', 'Certified Mobility');
      

      經(jīng)過比較,我想要字符串為:

      $str = '<select name="options[45]" id="select_45" class=" required-entry product-custom-option" title=""? onchange="opConfig.reloadPrice()">
      <option value="" >-- Please Select --</option>
      <option value="76"? price="0" >Certified Networking </option>
      <option value="91"? price="0" >Certified  Mobility </option>
      </select>';
      

      我嘗試使用DOM,這使我可以從字符串中獲取選項文本.但是我一直堅持下去,找不到進一步的方法.

      $dom = new DOMDocument();
      $dom->loadHTML($str);
      $xpath = new DOMXPath($dom);
      
      $options = $xpath->query('//select/option'); 
      
      foreach ($options as $option) {
          echo $option->nodeValue;
      }
      

      解決方法:

      您可以使用正則表達式的功能,如下所示.但請記住,它僅適用于您的類型,這意味著僅當您具有select和options標記時才有效.

      $str = '<select name="options[45]" id="select_45" class=" required-entry product-custom-option" title=""  onchange="opConfig.reloadPrice()">
      <option value="" >-- Please Select --</option>
      <option value="76"  price="0" >Certified Networking </option>
      <option value="89"  price="0" >Certified Virtualization </option>
      <option value="90"  price="0" >Certified Expert Virtualization </option><option value="91"  price="0" >Certified  Mobility </option>
      <option value="92"  price="0" >Certified Professional Networking </option><option value="93"  price="0" >Certified Professional Virtualization </option>
      </select>';
      
      $array = array('-- Please Select --','Certified Networking', 'Certified Mobility');
      
      foreach ($array as $index=>$value) {
          $array[$index] = preg_replace(array('/([\-\ \*\$\^\{\}\[\]\<\>\.\?\\/\\\\])/', '/\s /'), array('\\\\$1', '\\\\s '), $value);
      }
      $str = explode("\n", str_replace('</option><option', "</option>\n<option", $str));
      $regexp = '/^(?:\s*(?:\<\/?select[^\>]*\>[^\n]*|\<option[^\>]*\>\s*(?:'.implode('|', $array).')\s*\<[^\n]*)\s*)$/i';
      foreach($str as $index=>$value) {
          if (!preg_match($regexp, $value, $match)) {
              unset($str[$index]);
          }
      }
      $str = implode("\n",$str);
      

      編輯
      如果您有任何包含選擇選項大小寫的html,請使用下面編輯的html:

      $str = '<select name="options[45]" id="select_45" class=" required-entry product-custom-option" title=""  onchange="opConfig.reloadPrice()">
      <option value="" >-- Please Select --</option>
      <option value="76"  price="0" >Certified Networking </option>
      <option value="89"  price="0" >Certified Virtualization </option>
      <option value="90"  price="0" >Certified Expert Virtualization </option><option value="91"  price="0" >Certified  Mobility </option>
      <option value="92"  price="0" >Certified Professional Networking </option><option value="93"  price="0" >Certified Professional Virtualization </option>
      </select>';
      
      $array = array('-- Please Select --', 'Certified Networking', 'Certified Mobility');
      
      foreach ($array as $index => $value) {
          $array[$index] = preg_replace(
              array('/([\-\ \*\$\^\{\}\[\]\<\>\.\?\\/\\\\])/', '/\s /'),
              array('\\\\$1', '\\\\s '),
              $value
          );
      }
      $str = explode("\n", str_replace('</option><option', "</option>\n<option", $str));
      $regexp = '/^(?:\s*(?:\<option[^\>]*\>\s*(?:' . implode('|', $array) . ')\s*\<[^\n]*)\s*)$/i';
      foreach ($str as $index => $value) {
          if (stripos($value, '<option') !== false && !preg_match($regexp, $value, $match)) {
              unset($str[$index]);
          }
      }
      $str = implode("\n", $str);
      
      來源:https://www./content-1-565901.html

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多