Ajutor regex

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

alinmanea
New Member
Mesaje: 4
Membru din: Mar Iul 10, 2018 9:07 am

Ajutor regex

Mesajde alinmanea » Mar Aug 14, 2018 11:34 pm

Salutare,

Se da urmatorul cod html dintr-o sursa a unui site:

Cod: Selectaţi tot

<ul class="sizeSelect dropdown-menu" id="sUM1970">
                <li data-sku="UM1970/S" class="sizeSelectItem ">

                        <a onclick="setDropdownText('UM1970/S', 'UM1970'); "><span>Small Chest 35-37&quot;</span> <span class="stockStatusMessage"> </span></a>
                </li>
                <li data-sku="UM1970/M" class="sizeSelectItem ">

                        <a onclick="setDropdownText('UM1970/M', 'UM1970'); "><span>Medium Chest 38-40&quot;</span> <span class="stockStatusMessage"> Low Stock</span></a>
                </li>
                <li data-sku="UM1970/L" class="sizeSelectItem disabled">

L Sold Out                </li>
                <li data-sku="UM1970/XL" class="sizeSelectItem disabled">

XL Sold Out                </li>
        </ul>


Vreau sa preiau marimile din acest cod.
Eu am reusit sa preiau marimile S, M, L, XL din codul <li data-sku="UM1970/M" cu functia asta:

Cod: Selectaţi tot

function getSizes($html, $sku){
      if ( preg_match_all("/<li.*data-sku=\"".$sku."\/(.*)\".*/Usi", $html, $rez) ) {
         return $rez[1];
      } return array();
   }

Dar problema este ca le preia pe toate iar unele din au un disabled, cele care au disabled inseamna ca nu mai sunt in stoc si nu vreau sa le preiau si pe acestea.
As vrea sa preiau ce se afla intre span (Medium Chest 38-40&quot;) din codul asta <a onclick="setDropdownText('UM1970/M', 'UM1970'); "><span>Medium Chest 38-40&quot;</span> dar sa preiau doar Medium, fara Chest 38-40&quot; iar cele care au disabled in <li> sa nu le preiau.
Sper ca am explicat destul de bine.
Ma poate ajuta cineva?



alinmanea
New Member
Mesaje: 4
Membru din: Mar Iul 10, 2018 9:07 am

Re: Ajutor regex

Mesajde alinmanea » Vin Aug 17, 2018 1:29 pm

Nu ma poate ajuta nimeni?

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: Ajutor regex

Mesajde nevvermind » Sâm Aug 18, 2018 10:36 am

a) nu mai ciordi de pe alte site-uri. nu-i frumos.
b) nu mai folosi regex. foloseste un DOM parser: https://github.com/paquettg/php-html-parser
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

ViezuREX
Senior Member
Mesaje: 502
Membru din: Joi Dec 13, 2012 1:35 pm

Re: Ajutor regex

Mesajde ViezuREX » Mar Aug 28, 2018 7:58 pm

a) Nevermind are dreptate
b) Poti incerca XPath http://php.net/manual/ro/simplexmlelement.xpath.php


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori