Как я могу совмещать или писать более эффективно это утверждение if else?
Есть ли лучший способ написать это, не записывая всю вещь дважды?
Единственное отличие заключается в том, что два условия, установленные в первой части, проверяют, существует ли карта Sitemap, а затем проверяет, изменилось ли время изменения файла Sitemap в последние 24 часа. Если эти два условия верны, тогда двигайтесь вперед, если эти два условия являются ложными, перейдите к другой части инструкции, которая просто создает XML-документ, не проверяя, изменилось ли измененное время, поскольку не было файла для проверки ,
$time = time(); $sitemap = $_SERVER['DOCUMENT_ROOT'].'/sitemap.xml'; if (file_exists($sitemap)) { // if sitemap exists if ($time - filemtime($sitemap) >= 1) { // 1 days $xml = new DomDocument('1.0', 'utf-8'); $xml->formatOutput = true; // creating base node $urlset = $xml->createElement('urlset'); $urlset -> appendChild( new DomAttr('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9') ); // appending it to document $xml -> appendChild($urlset); // building the xml document with your website content foreach($dirlist as $file) { if($file['type'] != 'text/x-php') continue; //Creating single url node $url = $xml->createElement('url'); //Filling node with entry info $url -> appendChild( $xml->createElement('loc', 'http://www.'.$domain.$file['name']) ); $url -> appendChild( $lastmod = $xml->createElement('lastmod', date('Ym-d', $file['lastmod'])) ); $url -> appendChild( $changefreq = $xml->createElement('changefreq', 'monthly') ); $file['name'] != '/' ? $p = '0.5' : $p = '1.0'; $url -> appendChild( $priority = $xml->createElement('priority', $p) ); // append url to urlset node $urlset -> appendChild($url); } $xml->save($sitemap); } // if time } // if sitemap exists else { $xml = new DomDocument('1.0', 'utf-8'); $xml->formatOutput = true; // creating base node $urlset = $xml->createElement('urlset'); $urlset -> appendChild( new DomAttr('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9') ); // appending it to document $xml -> appendChild($urlset); // building the xml document with your website content foreach($dirlist as $file) { if($file['type'] != 'text/x-php') continue; //Creating single url node $url = $xml->createElement('url'); //Filling node with entry info $url -> appendChild( $xml->createElement('loc', 'http://www.'.$domain.$file['name']) ); $url -> appendChild( $lastmod = $xml->createElement('lastmod', date('Ym-d', $file['lastmod'])) ); $url -> appendChild( $changefreq = $xml->createElement('changefreq', 'monthly') ); $file['name'] != '/' ? $p = '0.5' : $p = '1.0'; $url -> appendChild( $priority = $xml->createElement('priority', $p) ); // append url to urlset node $urlset -> appendChild($url); } $xml->save($sitemap); }