wome osCommerce ebay模块功能eregi的麻烦

时间:2013-06-30 00:23:10

标签: php wamp ebay oscommerce

我目前正在尝试获取针对OS商务的eBay拍卖模块,但发现eregi功能已被弃用。我搜索了几个帖子,但解决方案没用。我真的不太了解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);

----代码结束

我有一个类似的分裂问题,但改变它爆炸现在用eregi解决了问题,它与preg匹配不太合适,或者我没有正确使用它。

感谢您的关注

亲切的问候

Juan Fernando Baird

1 个答案:

答案 0 :(得分: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;

我希望这会有所帮助,尽管它可能会提出尽可能多的问题,而不是试图回答。