Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie klasy zawierającej ID kategorii do każdego elementu listy wewnątrz stringa
designez
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 11.08.2012

Ostrzeżenie: (0%)
-----


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>';


Ten post edytował designez 1.04.2016, 16:36:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
NickOver
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  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ą.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:04