コード例 #1
0
 public function escapedQuery($query, $vars = array())
 {
     for ($teller = 0; strpos($query, '%') !== FALSE; $teller++) {
         $pos = strpos($query, '%');
         if ($pos !== false) {
             if (trim($vars[$teller]) == FALSE) {
                 return null;
             }
             $query = substr_replace($query, Uri::escape_uri($vars[$teller]), $pos, 1);
         }
     }
     $prefixed_query = self::prefixesIntoQuery() . $query;
     try {
         $return = @file_get_contents($this->endpoint . rawurlencode($prefixed_query));
         return json_decode($return, true);
     } catch (Exception $e) {
         error_log('Fout bij uitvoeren query: ' . $e);
         return null;
     }
 }
コード例 #2
0
ファイル: Model.class.php プロジェクト: robertjuh/HZ
 /**
  * Verwijdert een verband tussen twee IE's, indien aanwezig.
  * @type: Met beginhoofdletter, zoals in wikiartikel, na {{
  */
 static function verwijderVerband($van_uri, $naar_uri, $type)
 {
     $van = Uri::SMWuriNaarLeesbareTitel($van_uri);
     $naar = Uri::SMWuriNaarLeesbareTitel($naar_uri);
     $verbandtype = '';
     switch ($type) {
         case 'Produces':
         case 'Consumes':
         case 'Part of':
             $verbandtype = 'argument';
             break;
         default:
             $verbandtype = 'blok';
     }
     if ($verbandtype == 'argument') {
         $ie_type = SPARQLConnection::geefEersteResultaat('wiki:' . Uri::escape_uri($van_uri), 'property:Intentional_Element_type');
         self::verwijderUitBlokargumentVanArtikel($van, $ie_type . ' links', $type, $naar, 'Verband verwijderd via EMontVisualisator');
         return;
     }
     $titel_te_bewerken_artikel = Title::newFromText($van);
     $te_bewerken_artikel = new WikiPage($titel_te_bewerken_artikel);
     $inhoud = $te_bewerken_artikel->getText();
     $verbandaanwezig = self::vindVerband($van, $naar, $type);
     if ($verbandaanwezig === FALSE) {
         return;
     }
     $blockstring = '{{' . $type;
     $eindstring = '}}';
     $posblock = 0;
     while (TRUE) {
         $posblock = strpos($inhoud, $blockstring, $posblock);
         $posnaar = strpos($inhoud, $naar, $posblock);
         $posvolgendeblock = strpos($inhoud, $blockstring, $posblock + 1);
         if ($posnaar < $posvolgendeblock || $posvolgendeblock === FALSE) {
             $poseind = strpos($inhoud, $eindstring, $posnaar);
             break;
         }
         // Om te voorkomen dat hetzelfde blok opnieuw wordt gevonden wordt de positie met 1 verhoogd.
         $posblock++;
     }
     $nieuwe_inhoud = substr($inhoud, 0, $posblock) . trim(substr($inhoud, $poseind + strlen($eindstring)));
     $te_bewerken_artikel->doEdit($nieuwe_inhoud, 'Verband verwijderd via EMontVisualisator', EDIT_UPDATE);
 }