आप PHP के simplexml के साथ अपने schema.xml को पार्स कर सकते हैं।
$xml = simplexml_load_file('schema.xml');
$tableExists = 0 < count($xml->xpath("table[@phpName='$tableName']"));
$tableName
. के लिए उपयोगकर्ताओं के इनपुट को फ़िल्टर करना न भूलें , अन्यथा xpath में स्वयं की क्वेरी को इंजेक्ट करना संभव है। बेहतर प्रदर्शन के लिए आपको अपने परिणामों को कैश करना चाहिए।
इससे भी बेहतर यह होगा कि आप अपने schema.xml
. के आधार पर सभी तालिकाओं के साथ हैश मैप बनाएं , इस हैश मैप को कैश करें और हर बार इसकी जांच करें।
$hashMap = $foo->getCache('tables');
if (!$hashMap) {
$xml = simplexml_load_file('schema.xml');
$tables = $xml->xpath("table");
foreach ($tables as $table) {
$hashMap[$table['phpName']] = true;
}
$foo->setCache('tables', $hashMap);
}
$tableExists = isset($hashMap[$tableName]);
इस मामले में उपयोगकर्ता के इनपुट को फ़िल्टर करना वास्तव में आवश्यक नहीं है।