2017-06-13 5 views
0

少し厄介なことをやろうとすると、エコーのために色を設定します。私は一度答えを与えられましたが、実際に色を変えることができませんでした。ここで私が作業しているコードです。PHPスクラップされたデータ内の特定のキーワード(テキスト)に色を設定する方法

<?php 

$doc = new DOMDocument; 

// djia/nas/sp current values 
$doc->preserveWhiteSpace = false; 

// Most HTML Developers are chimps and produce invalid markup... 
$doc->strictErrorChecking = false; 
$doc->recover = true; 

$doc->loadHTMLFile('http://www.nbcnews.com/business'); 

$xpath = new DOMXPath($doc); 

$query = "//div[@class='market']"; 

$entries = $xpath->query($query); 

foreach ($entries as $entry) { 
echo trim($entry->textContent); // use `trim` to eliminate spaces 

} 

?> 

それがこの結果吐き出しています:DJIA 21271.97 89.44(0.42パーセント)NASDAQ 6207.92 -113.85(-1.80%)S & P 500 2431.77 -2.02(-0.08%)

どのようにフォーマット可能性をそれはいつもex、DJIAの言葉を赤色にしていますか?私は何が起こるのだろうかという論理を理解していますが、私の既存のコードをどのように動作させるかはわかりません。

私はこれを回答として一度だけ提供されましたが、実際には "DJIA"の色を変更しませんでした。おそらく誰かが私が間違ってやっていることを知っていたでしょうか? *これは私がここで扱っている擦れたテキストであることを忘れないでください。

<?php 

$doc = new DOMDocument; 

// djia/nas/sp current values 
$doc->preserveWhiteSpace = false; 

// Most HTML Developers are chimps and produce invalid markup... 
$doc->strictErrorChecking = false; 
$doc->recover = true; 

$doc->loadHTMLFile('http://www.nbcnews.com/business'); 

$xpath = new DOMXPath($doc); 

$query = "//div[@class='market']"; 

$entries = $xpath->query($query); 

foreach ($entries as $entry) { 
    if(trim($entry->textContent) =='DJIA'){//compare with the word you want 
to make red 
echo "<span style='color:red;'>". trim($entry->textContent) ." 
</span>"; 
    }else{ 
     echo trim($entry->textContent); 
    } 
} 

?> 

フィードバックありがとうございます。

+0

if文はtextContent全体がDJIAだけであるかどうかを調べるためにif文が探していますが、textContentには他のものがあります。 – Cuagau

答えて

1

strreplace('DJIA', '<span class="color:red">DJIA</span>', $someText);

+0

あなたの答えをありがとう。私が持っている既存のコードにそれを置くことに関するアドバイスはありますか?私はそれを置き換える必要がある場合は、PHPを壊すしたくないです。私はこの言語のスーパーです。 – Masteryogurt

+0

<?php $ doc = new DOMDocument; // djia/nas/sp現在の値 $ doc-> preserveWhiteSpace = false; //ほとんどのHTML開発者はチンパンバーで無効なマークアップを生成します... $ doc-> strictErrorChecking = false; – Masteryogurt

+0

$ doc-> recover = true; $ doc-> loadHTMLFile( 'http://www.nbcnews.com/business'); $ xpath =新しいDOMXPath($ doc); $ query = "// div [@ class = 'market']"; $ entries = $ xpath-> query($ query); foreach($ entries $ entry){ if(trim($ entry-> textContent)== 'DJIA'){//赤くしたい単語と比較する strreplace( 'DJIA'、 ' DJIA '、$ someText); } else { echo trim($ entry-> textContent); } } ?> – Masteryogurt

関連する問題