wbsite から xml を読み取るために書いています。
$jtype = $job_type == 1 ? 'fulltime' : $job_type == 2 ? 'parttime' : $job_type == 3 ? 'contract':'';
$xml ="http://api.indeed.com/ads/apisearch?";
$xml .="publisher=9628233567417007";
$xml .="&q=".$q; //Query. By default terms are ANDed. To see what is possible, use our advanced search page to perform a search and then check the url for the q value.
$xml .="&l=".$location; //Location. Use a postal code or a "city, state/province/region" combination.
$xml .="&sort="; //Sort by relevance or date. Default is relevance.
$xml .="&radius=30"; //Distance from search location ("as the crow flies"). Default is 25.
$xml .="&st=employer"; //Site type. To show only jobs from job boards use 'jobsite'. For jobs from direct employer websites use 'employer'.
$xml .="&jt=".$jtype ; //Job type. Allowed values: "fulltime", "parttime", "contract", "internship", "temporary".
$xml .="&start=0"; //Start results at this result number, beginning with 0. Default is 0.
$xml .="&limit=10"; //Maximum number of results returned per query. Default is 10
$xml .="&fromage=".$within; //Number of days back to search.
$xml .="&filter=1"; //Filter duplicate results. 0 turns off duplicate job filtering. Default is 1.
$xml .="&latlong=1"; //If latlong=1, returns latitude and longitude information for each job result. Default is 0.
$xml .="&co=GB";//arch within country specified. Default is us. See below for a complete list of supported countries.
$xml .="&v=2";
$xmlData = new SimpleXMLElement( $xml, null, true);
$xmls = $xmlData->xpath('results/result');
$jIndeed = array();
$iIndeed=1;
if( !empty($xmls) )
{
foreach ( $xmls as $xml )
{
$created_at = strftime( dateFormat ,strtotime((string)$xml->date));
$jIndeed[$iIndeed]['job_id'] = (string)$xml->jobkey;
$jIndeed[$iIndeed]['jobTitle'] = cleanText( (string)$xml->jobtitle );
$jIndeed[$iIndeed]['var_name'] = seoUrl( (string)$xml->jobtitle);
$jIndeed[$iIndeed]['jobDescription'] = (string)$xml->snippet;
$jIndeed[$iIndeed]['created_at'] = $created_at;
$jIndeed[$iIndeed]['job_type'] = (string)$xml->typeName;
$jIndeed[$iIndeed]['companyName'] = (string)$xml->company;
$jIndeed[$iIndeed]['location'] = (string)$xml->formattedLocation;
$iIndeed++;
}
$smarty->assign('searchIndeed', $jIndeed);
}
これをローカル マシンで実行すると問題なく動作しますが、自分のサイトにアップロードするとエラー 500「ページを表示できません」が発生します。
memery を 20MB に変更し、post を 1000 に変更しましたが、まだ失敗しています。私のホストには制限があると思います.PHPで設定してもまだ失敗しても違いはありません.
この Web サイトの xml を処理するために使用できる xml クラスはありますか。
アップデート:
これを入れてからini_set('display_errors', E_ALL);
警告: SimpleXMLElement::__construct(): http:// ラッパーは、/.../indeedXMLSearch.php の 44 行目の allow_url_fopen=0 によってサーバー構成で無効になっています
警告: SimpleXMLElement::_ construct(http://api. Indeed.com/ads/apisearch?publisher=9628233567417007&q=desktop&l=&sort=&radius=30&st=employer&jt=&start=0&limit=10&fromage=&filter=1&latlong=1&co=GB&v=2): ストリームを開くことができませんでした: 適切なラッパーが見つかりませんでした/.../indeedXMLSearch.php の 44 行目 警告: SimpleXMLElement::_construct(): I/O 警告: 外部エンティティの読み込みに失敗しました "http://api.indeed.com/ads/apisearch?publisher=9628233567417007&q=desktop&l=&sort=&radius=30&st=employer&jt=&start=0&limit=10&fromage=&filter =1&latlong=1&co=GB&v=2" in /.../indeedXMLSearch.php 行 44 44 ...