curl_exec拉错了HTML vs字符串传递给curl_init

时间:2018-12-24 13:34:25

标签: php php-curl

我的curl请求字符串是通过程序从数据库的基本URL和整数(即页码)创建的。 URL的字符串正确。如果我在将基本URL复制到函数中的情况下调用curl请求,它将起作用。如果我使用以编程方式创建的字符串(相同)来调用它,则会调用错误的页面-它似乎缺少字符串(从属关系)中的参数之一:

这个已经运行了好几年了。服务器是PHP 5.6。数据库中的字符串存储为varchar(500)。我已经尝试将TEXT作为数据库中的类型。我尝试了各种在函数中强制使用字符串的方法。如果在进行curl调用之前获得了可回显它的代码,则从第二个$ testurl复制并粘贴下面的第一个$ testurl。

//choose one of the $testurls to try
$testurl = 'https://log.concept2.com/challenges/holiday/2019/honorboard/200?country=0&state=&affiliation=1397&sort=distance&page=2';
//In this... $url comes from the database, $gotopage comes from a loop
$testurl = (string)($url . $gotopage);
$c = curl_init($testurl)
$str = curl_exec($c);
curl_close($c);
echo $str; 
die;

第一个$ testurl返回我想要的,这是同一团队中的人员列表。 第二个$ testurl返回属于任何隶属关系的人员列表。

每个人的季节问候。

编辑: var_dump($ testurl)给出:     字符串(134)“ https://log.concept2.com/challenges/holiday/2019/honorboard/200?country=0&state=&affiliation=1397&sort=distance&page=2

完整的代码更具挑战性。 $ GoToPage是一个整数。 $ url从数据库中提取。相关行是:

$url = $challenge['mb2_Challenges']['challenge_url'];

$挑战是从mysqli SELECT ... FROM ... WHEN ... SQL查询中创建的。 mb2_Challenges是表,challenge_url是表。

1 个答案:

答案 0 :(得分:0)

对于那些在圣诞节前夕像我一样愚蠢的人,这是答案:

脚本中的字符串经过了数字加密,因此用&代替了&。我在圣诞节前夕急于发现这一点。它只需要htmlspecialchars_decode

经验教训:请始终查看源代码!