Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

<?php
/**
 * Simple general purpose function for updating Solr
 * @param string $url Solr URL for updating data
 * @param string $postXml XML containing update information
 * @return string Solr response **/
function updateSolr($url, $postXml){
echo $url;
echo $postXml;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postXml);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
 
    $header[] = "SOAPAction: $url";
    $header[] = "MIME-Version: 1.0";
    $header[] = "Content-type: text/xml; charset=utf-8";
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
 
    $r = curl_exec($ch);
    if(!$r)
        echo "Error: " . curl_error($ch) . "n";
    curl_close($ch);
    print_r($r);
}//end updateSolr()
 
// Build a simple XML string to add a new record.
// PHP command line parameters are received in $argv array.
$xml = '<add>
<doc>
<field name="id">'.$argv[2].'</field>
<field name="title">"'.$argv[3].'"</field>
<field name="store">'.$argv[4].'</field>
<field name="brand">'.$argv[5].'</field>
<field name="category">"'.$argv[6].'"</field>
<field name="inStock">'.$argv[7].'</field>
<field name="popularity">'.$argv[8].'</field>
<field name="price">'.$argv[9].'</field>
</doc>
</add>';
 
updateSolr($argv[1], $xml);
// Lastly let's commit our changes
updateSolr($argv[1], "<commit />");