-1

私の問題は次のとおりです。私は、その出力を入力として使用するために、辞書を解析またはスクレイピングしています(つまり、定義を示しています)。この出力には、いくつかのクラスが含まれています。クラス f という 1 つのクラスがあり、定義された用語とそれに続くドットが含まれます。このドットが邪魔なので消したいです。

ここに画像の説明を入力

<p class="p">

<a href="search?id=D536ScxxE2x5wsXG0ez" target="_self"><img align="right" alt="Ver artículo enmendado" border="0" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH0AAAAZBAMAAADuyzxaAAAAElBMVEWEAgT8/vz8QkT8AgS8AgT8enxcJRi+AAAA0klEQVQ4y82SwQ3DMAhFOWQBxAJVqwyAWCCHjJDuv0r5OImR2hxqLkEWXxAeBis0vyu20LOCb85XBlidLwywBT8+wBr8y0btNrweGWmifIWwdN/5vVzOPpe8SveJl3z737x6zMJuoq7CzqOlQlhZkRGoQqz5xBty3sULw1kgFoAHbpFEs34S70UeN9QSz2ez6NOwb17sgu8Bypsq/+CB7nyevwf+zfLwmde2ItZgjbGx6fl+sbzE+2GN49zp/y3xNGwT+Mc4T+ALOE0LVa4nWqhoH2NuCULPEni8AAAAAElFTkSuQmCC"></a>

<span class="f">

<b>gas</b>

</span>

<span class="f">

<b>.</b>

</span>

</p>

私はphpを徹底的に使用していることに注意してください。必要な場合に備えて、次のようになります。

<?php
    $word = $_REQUEST['word'];


    $url = "http://lema.rae.es/drae/srv/search?val={$word}";

    $css = <<<EOT

    <style type="text/css">

    .f /* I GUESS THE PROBLEM IS OVER HERE. I CANT VISIBILITY HIDE F BECAUSE THAT WOULD HIDE "GAS", APART FROM "." */
       {
         margin-left:50px;
         font-size: 200%;
         color: #ffe200;
         font-family: 'brannboll_fetregular';

       }

    </style>
EOT;

$data = file_get_contents($url);
$data = str_replace('</head>', $css.'</head>', $data);
echo '<div id="result1"
  style="
  top: 77%;
  left: 55%;
  overflow:scroll; 
  width:400px; 
  height:300px;
  border: 1px solid #000000;
  border-radius: 15px;
  background-opacity: 0.5;
  background: #047C8F;
  -webkit-border-radius: 15px;
  -moz-border-radius: 15px;
  box-shadow: inset 0px 3px 13px #000000;
  -moz-box-shadow:
               0px 3px 13px rgba(000,000,000,0.5),
               inset 0px 0px 13px rgba(0,0,0,1);
  -webkit-box-shadow:
               0px 3px 13px rgba(000,000,000,0.5),
               inset 0px 0px 13px rgba(0,0,0,1);
 ">
 '.$data.' 
 </div>';
    ?>
4

1 に答える 1

1

これを行うには、いくつかの方法があります。

CSS

クラスの最初のスパンのみを表示するようにブラウザに指示するルールを追加できますf

span.f:not(:first-of-type) {
    display:none;
}

これは、古いブラウザ、特にIE8以前では失敗する可能性があります。

PHP

は予測可能な文字列のように見えるので、.簡単に置き換えることができます。

$data = str_replace('<span class="f"><b>.</b></span>', '', $data);

これは「WordNotFound」ページでも機能します。.つまり、各ワールドの最後にあるsを削除するだけです。

http://lema.rae.es/drae/srv/search?val=world

DOM解析

これを処理するためのより堅牢な方法は、DOMパーサーを調べることです。ここでDOM解析の簡単な紹介を読むことができます:

domphpパーサーの使用方法

<span class="f">基本的に、最初の内で2番目を検索する必要があります<p>

于 2012-12-21T14:29:20.203 に答える