2017-07-15 4 views
0

Ich verwende das Skript simple_html_dom, um Informationen von einer Site abzurufen.Wie kann ich inline css verkratzen?

Ich versuche, ein Element mit dem Display zu verschrotten: keine Eigenschaft.

Hier ist das Element:

<label data-product-attribute-value="1307" class="form-label" for="attribute_1307" style="display: none;">This is the title</label> 

Wie kann ich erkennen, dass dieser Tag Inline-CSS-Display trägt: keine ;?

Hier ist mein Code:

$html = get_html_data($url); 
foreach ($html->find('.form-label') as $links) { 
    echo $links->outertext; 
} 

$links->outertext wird mir geben nur so viel:

<label data-product-attribute-value="1307" class="form-label" for="attribute_1307">This is the title</label> 

Sie können sehen, dass, es ist nicht mit dem Stil-Eigenschaft, während Schaben.

Wie kann ich die Inline-CSS-Eigenschaft erhalten? Wenn ich eine andere Bibliothek verwenden muss, schlagen Sie bitte vor.

Antwort

0

Sie können style mit ->style erhalten. Versuchen Sie folgendes:

foreach ($html->find('.form-label') as $links) { 
    echo ($links->style); //op : display: none; 
} 
0

Doable für mich wie erwartet:

<?php 
$html = <<< HTML 
<label data-product-attribute-value="1307" class="form-label" for="attribute_1307" style="display: none;"> 
This is the title 
</label> 
HTML; 

$dom = new DOMDocument; 
$dom->loadHTML($html); 
echo ( $label->hasAttribute('style') 
     && preg_match('/display:\s*none/', $label->getAttribute('style'))) ? 
    "display set to 'none'" : "display NOT set to 'none'"; 

Der Ausgang offensichtlich ist:

display set to 'none' 
+0

Vielen Dank für Ihren Vorschlag. Ich habe herausgefunden, dass file_get_html die style -Eigenschaft für dieses spezifische Label nicht bekommt. Ich bekomme eine Stileigenschaft für wenige Elemente, aber nicht für alle. Ich verwende auch curl, um den gesamten HTML-Code über die URL zu verwerfen, aber das gleiche Problem tritt auf. Bitte vorschlagen. –