0

現在、OS コマース用の eBay オークション モジュールを取得しようとしていますが、エレギ機能が非推奨であることがわかりました。いくつかの投稿を検索しましたが、解決策は役に立ちませんでした。私はあまりPHPを知りませんが、割り当ての性質上、私はそれを続けることを余儀なくされています.

私が明らかに問題を抱えているコードは次のとおりです。

        $URL = 'http://cgi6.ebay.com/ws/eBayISAPI.dll?ViewListedItems&userid=' . EBAY_USERID . '&include=0&since=' . AUCTION_ENDED . '&sort=' . AUCTION_SORT . '&rows=0'; 

// Where to Start grabbing and where to End grabbing
$GrabStart = '<tr bgcolor=\"#ffffff\">';
$GrabEnd = 'About eBay';

// Open the file
$file = fopen("$URL", "r");

// Read the file

if (!function_exists('file_get_contents')) {
     $r = fread($file, 80000);
} 
else {
    $r = file_get_contents($URL);  
}


// Grab just the contents we want
$stuff = eregi("$GrabStart(.*)$GrabEnd", $r, $content);

---- コードの終わり

スプリットで同様の問題がありましたが、爆発するように変更すると、エレギで問題が解決し、プレグマッチでうまく機能しないか、適切に使用していません。

ご清聴ありがとうございました

敬具

フアン・フェルナンド・ベアード

4

1 に答える 1

0

私は正規表現にあまり慣れていないことを認めなければならないので、php 5.2.9 と 5.2.6 を使用して既存の eregi をテストして、何が返されるかを確認しようとしました。$stuff には常に FALSE が返され、$contents には何も設定されていませんでした。したがって、このコードが実際に何もしなかった可能性があります!!

したがって、コードが実際に何を返そうとしているのか、つまり $GrabStart または $GrabEnd を結果に表示する必要があるかどうかを正確に確認できないため、これは少し危険です。

これはおそらく仕事をするでしょう。また、かなり単純なテキスト操作のために正規表現エンジンをロードする必要がないため、おそらく使用するリソースが大幅に少なくなります。

$r = 'aaa<tr bgcolor=\"#ffffff\">xxxAbout eBaybbb';
$conent = '';

$GrabStart = '<tr bgcolor=\"#ffffff\">';
$GrabEnd = 'About eBay';

/*
 *  This will return the GrabStart and GrabEnd data in the result
    p1 3
    p2 40
    $content = <tr bgcolor=\"#ffffff\">xxxAbout eBay
*/
$p1 = strpos($r, $GrabStart);
$p2 = strpos($r, $GrabEnd) + strlen($GrabEnd);
$content = substr($r, $p1, $p2-$p1);

echo 'p1 ' . $p1 . PHP_EOL;
echo 'p2 ' . $p2 . PHP_EOL;
echo $content . PHP_EOL;

/*
*  This will just return the data between GrabStart and GrabEnd and not the start and end sentinals
    p1 27
    p2 30
    $content = xxx
*/
$p1 = strpos($r, $GrabStart) + strlen($GrabStart);
$p2 = strpos($r, $GrabEnd, $p1);
$content = substr($r, $p1, $p2-$p1);

echo 'p1 ' . $p1 . PHP_EOL;
echo 'p2 ' . $p2 . PHP_EOL;
echo $content . PHP_EOL;

答えようとするのと同じくらい多くの質問をするかもしれませんが、これが何らかの助けになることを願っています.

于 2013-07-02T10:39:58.137 に答える