Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie klasy zawierającej ID kategorii do każdego elementu listy wewnątrz stringa
Forum PHP.pl > Forum > PHP
designez
Witam, proszę o pomoc. Nie wiem jak mogłbym zrobić pewną funkcjonalność.

Na ebay nie można zdecydować których kategorii nie wyświetlać na stronie produktu. Mamy skrypt który pobiera kategorie ze sklepu (sklep ebay - tam one są dostępne i wyświetlają się domyślnie) pobieramy je za pomocą simple_html_dom
we względu na długość kategorii chcemy mieć kontrolę i wyłączyć je poprzez css np

  1. custom-1234567891 {display:none;}

Dlatego chciałbym dodać do każdego elemenetu listy klasę zawierającą ID (które jest unikalne) kategorii kktórej dotyczy element listy w postaci custom-1234567891
Dla jednego elementu nie ma problem ale nie wiem jak zrobić to dla wszystkich jednocześnie i przypisać im prawidłowe ID
  1. <?php
  2. $string= '<a href="http://stores.ebay.co.uk/Sklep/Bathroom-/_i.html?_fsub=1234567891&amp;_sid=213387943&amp;_trksid=p4634.c0.m322">Bathroom</a>';
  3.  
  4. function __cleanData($c)
  5. {
  6. $string2 = preg_replace("/[^0-9]/", "",$c);
  7. /*$string2 = preg_replace("/[^_fsub=\K\d+]/", "",$c);*/
  8. return $string2 = substr($string2, 0,8);
  9. }
  10. echo __cleanData(''.$string.'');
  11. ?>

Problem jest taki że całe kategorie są przypisane do jednej zmiennej. Jak je rozbić i przypisać odpowiednie ID tak aby każdy element LI zawierał klasę z id

  1. $kategorie = '<ul class="lev1">
  2. <li>"><a href=\"http://stores.ebay.co.uk/Sklep/Bathroom-/_i.html?_fsub=1234567891&amp;_sid=213387943&amp;_trksid=p4634.c0.m322\">Bathroom</a><span class=\"cnt\"> (315)</span></li>
  3. <li>"><a href=\"http://stores.ebay.co.uk/Sklep/Basins-/_i.html?_fsub=2345678911&amp;_sid=213387943&amp;_trksid=p4634.c0.m322\">Basins</a><span class=\"cnt\"> (10)</span></li>
  4. <li>"><a href=\"http://stores.ebay.co.uk/Sklep/Bath-Tubs-/_i.html?_fsub=3456789123&amp;_sid=213387943&amp;_trksid=p4634.c0.m322\">Bath Tubs</a><span class=\"cnt\"> (32)</span></li>
  5. <li>"><a href=\"http://stores.ebay.co.uk/Sklep/Radiators-/_i.html?_fsub=4567897895&amp;_sid=213387943&amp;_trksid=p4634.c0.m322\">Radiators</a><span class=\"cnt\"> (54)</span></li>
  6. </ul>';
NickOver
  1. <?php
  2. preg_match_all("/<li>/", $kategorie, $output_array);
  3. $j = 1;
  4. for(i=0;i<count($output_array[0];i++){
  5. str_replace('<li>', '<li class="custom-class-'.$j.'">' , $kategorie, 1);
  6. }


Pisane z palca więc może być jakiś błąd ale zasadę działania masz podaną.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.