у нас есть приложение DITA XML, которое на лету создает xhtml и при просмотре в браузере выглядит нормально.
Пример URL: http://livecontent.jordanpublishing.co.uk/content/en/FAMILY-201103311115/Family_FLJONLINE_FLJ_2009_07_4
Если я пытаюсь загрузить URL с помощью curl, я получаю следующую ошибку:
Error checking function parameter 3 in call transform:transform($fDoc, LiveContent-UI:get_xsl("ui/ui_skin.xsl", ""), LiveContent-UI:get_xsl_params(untyped-value-check[xs:string, $skin], $extra_params)): The actual cardinality for parameter 1 does not match the cardinality declared in the function's signature: LiveContent-Util:browser_from_user_agent($a as xs:string) xs:string. Expected cardinality: exactly one, got 0.
XQuery Stack TraceLiveContent-Util:browser_from_user_agent(xs:string) 161:55
LiveContent-UI:get_xsl_params(xs:string, node()) 145:25
LiveContent-UI:get_html(xs:string, xs:string, node(), node()) 313:25
LiveContent-Pub:home(xs:string, xs:string, xs:string) 65:17
Java Stack Trace:Class Name Method Name File Name Line
org.exist.xquery.DynamicCardinalityCheck eval DynamicCardinalityCheck.java 80
org.exist.xquery.Atomize eval Atomize.java 66
org.exist.xquery.UntypedValueCheck eval UntypedValueCheck.java 75
org.exist.xquery.DynamicTypeCheck eval DynamicTypeCheck.java 61
org.exist.xquery.FunctionCall eval FunctionCall.java 185
org.exist.xquery.AbstractExpression eval AbstractExpression.java 61
org.exist.xquery.PathExpr eval PathExpr.java 241
org.exist.xquery.AttributeConstructor eval AttributeConstructor.java 95
org.exist.xquery.ElementConstructor eval ElementConstructor.java 212
org.exist.xquery.AbstractExpression eval AbstractExpression.java 61
org.exist.xquery.PathExpr eval PathExpr.java 241
org.exist.xquery.ElementConstructor eval ElementConstructor.java 271
org.exist.xquery.AbstractExpression eval AbstractExpression.java 61
org.exist.xquery.PathExpr eval PathExpr.java 241
org.exist.xquery.DebuggableExpression eval DebuggableExpression.java 56
org.exist.xquery.DebuggableExpression eval DebuggableExpression.java 63
org.exist.xquery.LetExpr eval LetExpr.java 208
org.exist.xquery.BindingExpression eval BindingExpression.java 158
org.exist.xquery.AbstractExpression eval AbstractExpression.java 61
org.exist.xquery.PathExpr eval PathExpr.java 241
и я совершенно не понимаю, что происходит не так.
Код PHP Curl выглядит следующим образом:
$ch = curl_init();
/**
* Set the URL of the page or file to download.
*/
curl_setopt($ch, CURLOPT_URL, 'http://onlineservices.letterpart.com/sitemap.xml;jsessionid=1j1agloz5ke7l?id=1j1agloz5ke7l');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec ($ch);
curl_close ($ch);
$xml = new SimpleXMLElement($data);
foreach ($xml->url as $url_list) {
$url = $url_list->loc;
echo $url ."<br>";
//file_get_contents($url);
echo $url ."<br>";
$ch = curl_init($url); //load the urls
echo $url ."<br>";
curl_setopt($ch, CURLOPT_TIMEOUT_m2, 20); //No need to wait for it to load. Execute it and go.
curl_exec($ch); //Execute
curl_close($ch); //Close it off
Кто-нибудь может помочь? Я немного растерялся, так как это далеко от моего набора навыков.
Спасибо
EDIT:
Было предложено добавить агента пользователя, поэтому я добавил следующее:
curl_setopt ($ ch, CURLOPT_USERAGENT, «Mozilla / 4.0 (совместимо; MSIE 5.01; Windows NT 5.0)»);
Теперь я получаю следующую ошибку в моих журналах:
[13-May-2011 16:30:14] PHP Notice: Use of undefined constant CURLOPT_TIMEOUT_m2 - assumed 'CURLOPT_TIMEOUT_m2' in /home/digital1/public_html/dev/sitemap.php on line 43
[13-May-2011 16:30:14] PHP Warning: curl_setopt() [<a href='function.curl-setopt'>function.curl-setopt</a>]: Invalid curl configuration option in /home/digital1/public_html/dev/sitemap.php on line 43
Здесь две строки (43):
curl_setopt($ch, CURLOPT_TIMEOUT_m2, 20); //No need to wait for it to load. Execute it and go.
Мне, кажется, повезло больше, используя агента Googlebot:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
как на самом деле я получаю контент, записанный на экран, но мои журналы все еще показывают эти ошибки.