1

オンラインのスペイン語辞書を作成しています。別のサイトから合法的に定義を取得します。ユーザーが検索する可能性のある特定の単語について、候補のリストが表示されます。提案された単語のいずれかをクリックすると、エラー ページがポップアップ表示されます: http://verbum.xtrweb.com/verbumpost.php?word=boedo&word0=hola . リストされた単語を以下に貼り付けたコードで実行するにはどうすればよいですか: (1) 定義を取得する (2) スタイルを変更する。これらの提案された単語 (inspect 要素) ごとに一意の URL が存在することを知っています。そのコードを元のサイトの URL パラメーターと一緒に貼り付けると、必要なものが得られます。

" http://lema.rae.es/drae/srv/search?id=AVNYdnea1DXX2EH9E2mb "

"srv/" までがサイトに属します

残りは特定の単語からのものです(この場合、最初に提案された「ボーダー」

プロセス:

    <?php
    $words = array('word','word0','word1','word2','word3','word4','word5','word6','word7','word7','word9',     
    'word10','word11','word12',
    'word13','word14','word15');                        
    function url_decode($string){
    return urldecode(utf8_decode($string));
    }

    // we'll use this later on for loading the files.
    $baseUrl = 'http://lema.rae.es/drae/srv/search?val=';

    // string to replace in the head.
    $cssReplace = <<<EOT

    <style type="text/css">
          //blabla
    </style>
    </head>
    EOT;

   // string to remove in the document.
   $spanRemove = '<span class="f"><b>.</b></span>';
   $styleRemove = 

   // use for printing out the result ID.
   $resultIndex = 0;

   // loop through the words we defined above
   // load the respective file, and print it out.
   foreach($words as $word) {
// check if the request with
// the given word exists. If not,
// continue to the next word
if(!isset($_REQUEST[$word]))
    continue;

// load the contents of the base url and requested word.
$contents = file_get_contents($baseUrl . urldecode(utf8_decode($_REQUEST[$word])));
// replace the data defined above.
$contents = str_replace('</head>', $cssReplace, $contents);
$contents = str_replace($spanRemove,"", $contents);

$data = preg_replace('/(search?[\d\w]+)/','http://lema.rae.es/drae/srv/\1', $data);

// print out the result with the result index.
// ++$resultIndex simply returns the value of 
// $resultIndex after adding one to it.
echo "<div id='results' style='
      //bla bla
      }
        ?> 
4

1 に答える 1

1

私はあなたの質問を理解していないと思いますが、初期化されていない変数 - $data で preg_replace を呼び出していることがわかります。

多分あなたは代わりにこれが欲しいですか?

 $data = preg_replace('/(search?[\d\w]+)/','http://lema.rae.es/drae/srv/\1', $contents);

私が言ったように、私はあなたの質問を完全には理解していませんが、それは潜在的な問題だと思います.

編集:

あなたのコメントから、クリックされたリンクの href をベース URL に追加し、そのページのデータを要求したいようです。jQueryは使えますか?このような:

var baseUrl = "http://lema.rae.es/drae/srv/"; // base url

//click function that binds to all anchors within a list item within a ul. in order
//to get more precise, you may need to add some classes or ids
$('ul li a').click(function(){
     var src = $(this).prop('href'); //this grabs the href property of the anchor
     $(this).find('span').css('propery', 'change to this'); //change css property of span child of this anchor
     //or if you want to add a class with styles to the element
     $(this).find('span').addClass('class name');

     //ajax request to get page data
     $.ajax({
         type: 'POST',
         url: baseUrl+src  //appending the query to the base url
     }).done(function(data){
         //append the returned html to a div, or any element you desire
         $('#myelement').append(data);
     });
});

お役に立てれば。jQuery に関するヘルプが必要な場合は、お知らせください。

于 2013-03-13T18:24:50.023 に答える