Prosím o radu: PHP - Odkazy pomocí include



Zdravím, potřeboval bych od zdejších programátorů poradit. Mám stránku "index.php", na které je umístěné menu s odkazy na další stránky (odkaz1.html, odkaz2.html...). Tyto budou ve stejném adresáři, jako "index.php". Pomocí PHP tagu "include" umístěného v <div> v souboru "index.php" bych chtěl, aby se jmenované stránky načítaly právě v tomto divu (čili aby se při přechodech mezi odkazy znovu NENAČÍTAL index.php, ale pouze tyto odkazované stránky v již zmiňované oblasti.Tady je zdroj "index.php":<html><head><link rel="stylesheet" href="styly.css"></head><body><ul class="navigation"> <li class="nav-item"><a href="odkaz1.html">Odkaz 1</a></li> <li class="nav-item"><a href="odkaz2.html">Odkaz 2</a></li> <li class="nav-item"><a href="odkaz3.html">Odkaz 3</a></li> <li class="nav-item"><a href="odkaz4.html">Odkaz 4</a></li> <li class="nav-item"><a href="odkaz5.html">Odkaz 5</a></li></ul><input type="checkbox" id="nav-trigger" class="nav-trigger" /><label for="nav-trigger"></label><div class="site-wrap"><?php include ("TADY BYCH CHTEL NACITAT JEDNOTLIVE STRANKY (viz odkazy)"); ?></div></body></html>Tímto prosím o radu jak postupovat. Nechci abyste mi posílali kód, potřebuji jen vysvětlení jak a přes co se k tomuto dopracuji. S PHP teprve začínám, tak prosím… abyste měli se mnou trpělivost. Díky! [Ukázat celý příspěvek](javascript:void(0))
Nijak. Toto PHP neřeší - neumí.
<p>pokud se dostáváte do bodu, kdy kód ve vašem <code>functions.php</code> tématu začíná přemoci vás, určitě bych řekl, že jste připraveni zvážit rozdělení do několika souborů. v tomto bodě mám sklon dělat to téměř druhou povahou.</p><h3>použít zahrnout soubory do souboru <code>functions.php</code> soubor</h3><p>vytvořím podadresář nazvaný<em> "zahrnuje" </em>pod mým adresářem motivů a segmentuji můj kód do souborů organizovaných podle toho, co mi v té době dává smysl (což znamená, že jsem neustále refactoring a pohybující se kód kolem webu se vyvíjí. ) také zřídka v reálném kódu v <code>functions.php</code>; vše jde v souborech zahrnujících; jen moje preference.</p><p>jen abych vám dal příklad zde je moje zkušební instalace, kterou používám k testování svých odpovědí na otázky zde na wordpress odpovědi. pokaždé, když odpovím na otázku, mám kód v případě, že ji potřebuji znovu. to není přesně to, co budete dělat pro živé stránky, ale ukazuje mechaniku rozdělení kódu:</p><pre><code>&lt;?php /* * functions.php * */ require\_once( \_\_dir\_\_ . '/includes/null-meta-compare.php'); require\_once( \_\_dir\_\_ . '/includes/older-examples.php'); require\_once( \_\_dir\_\_ . '/includes/wp-admin-menu-classes.php'); require\_once( \_\_dir\_\_ . '/includes/admin-menu-function-examples.php'); // wa: adding a taxonomy filter to admin list for a custom post type? // http://wordpress.stackexchange.com/questions/578/ require\_once( \_\_dir\_\_ . '/includes/cpt-filtering-in-admin.php'); require\_once( \_\_dir\_\_ . '/includes/category-fields.php'); require\_once( \_\_dir\_\_ . '/includes/post-list-shortcode.php'); require\_once( \_\_dir\_\_ . '/includes/car-type-urls.php'); require\_once( \_\_dir\_\_ . '/includes/buffer-all.php'); require\_once( \_\_dir\_\_ . '/includes/get-page-selector.php'); // http://wordpress.stackexchange.com/questions/907/ require\_once( \_\_dir\_\_ . '/includes/top-5-posts-per-category.php'); // http://wordpress.stackexchange.com/questions/951/ require\_once( \_\_dir\_\_ . '/includes/alternate-category-metabox.php'); // http://lists.automattic.com/pipermail/wp-hackers/2010-august/034384.html require\_once( \_\_dir\_\_ . '/includes/remove-status.php'); // http://wordpress.stackexchange.com/questions/1027/removing-the-your-backup-folder-might-be-visible-to-the-public-message-generate require\_once( \_\_dir\_\_ . '/includes/301-redirects.php'); </code></pre><h3>nebo vytvořit moduly</h3><p>další možností je začít seskupovat kód podle funkce a vytvořit si vlastní pluginy. pro mě začnu kódování v souboru <code>functions.php</code> a v době, kdy dostanu kód, jsem přesunul většinu kódu do pluginů.</p><h3>nicméně žádná významná výkonnost pochází z php kódové organizace</h3><p>na druhou stranu strukturování souborů php je 99% o vytvoření objednávky a udržovatelnosti a 1% o výkonu, pokud (organizování souborů <code>.js</code> a <code>.css</code>, které prohlížeč přes http volá, je zcela odlišný případ a má obrovský rozsah ale jak si organizujete svůj php kód na serveru do značné míry z hlediska výkonu nezáleží.</p><h3>organizace code je osobní preferencí</h3><p>a v neposlední řadě organizace kódu je osobní preference. někteří lidé by nenáviděli, jak organizuji kód, stejně jako bych mohl nenávidět, jak to taky dělají. najděte si něco, co se vám líbí a držte se ho, ale dovolte, aby se vaše strategie v průběhu času vyvíjela, abyste se s ní dozvěděli více a lépe se s ní spokojili.</p> Museli byste jej procházet zcela hledat každou stránku pro jedinečné spojení v rámci webu a pak dát je do indexu.


Také pro každého odkazu najdete v rámci webu, pak je třeba navštívit tuto stránku a hledat další jedinečné spojení.


Byste použít nástroj, jako je HtmlAgilityPack snadno uchopit URL a extrahovat odkazy z nich.


Napsal jsem článek, který se dotýká na těžbu odkazy součást problému:


* <http://runtingsproper.blogspot.com/2009/11/easily-extracting-links-from-snippet-of.html> <p>odstraněním všech ostatních řešení je zbývající alespoň jedno: <a href="http://codex.wordpress.org/plugin\_api/action\_reference/template\_redirect"><code>template\_redirect</code></a> :</p><pre><code>function wpse121308\_redirect\_homepage() { // check for blog posts index // not site front page, // which would be is\_front\_page() if ( is\_home() ) { wp\_redirect( get\_category\_link( $id ) ); exit(); } } add\_action( 'template\_redirect', 'wpse121308\_redirect\_homepage' ); </code></pre><p>samozřejmě musíte složit příslušnou kategorii <code>$id</code>.</p><p>výhodou přesměrování na <code>template\_redirect</code> je to, že se místo jednoho přesměrování <em> po načtení šablony </em> provede pouze jedno načítání šablony.</p><h2>upravit</h2><p>podle komentáře uživatele @ milo můžete také zkusit zaháknutí do procesu ještě dříve, v souboru <code>pre\_get\_posts</code>, čímž můžete potenciálně uložit celý požadavek dotazu:</p><pre><code>add\_action( 'pre\_get\_posts', 'wpse121308\_redirect\_homepage' ); </code></pre> <p>nevěřím, že google říká. bývalo pravda, že <code>test\_param\_1.html</code> bylo lepší než <code>index.php?module=test&amp;param=1</code>, ale nemyslím si, že by tomu tak pro google bylo.</p><p>pokud jsou však vaše 2 příklady stránek velmi podobné, budete chtít na nich použít rel = "canonical", aby google věděl, který z nich je hlavní. jinak bude vaše pagerank rozdělena mezi 2.</p> <p>jedním z řešení by bylo použití javascriptu k přidání všech názvů odkazů, jakmile se stránka načte. to znamená, že stahování pro uživatele bude malé - i když v závislosti na tom, jak dlouho je řetězec skutečně, může zabrat více paměti. další možná nevýhoda: vyhledávače a některé čtečky obrazovky nemusí vidět názvy odkazů.</p><p>nejprve do svých odkazů přidejte třídu. držel jsem ji velmi krátkou, aby se nadýmání udržovalo co nejníže, ale možná budete chtít popisnější název třídy.</p><pre><code>&lt;a id="1" class="t" href="gothere1"&gt;my 1st link&lt;/a&gt; [...] &lt;a id="2000" class="t" href="gothere2000"&gt;my 2000th link&lt;/a&gt; </code></pre><p>pak přidejte tento javascript (netestovaný, ale měl by fungovat):</p><pre><code>&lt;script type="text/javascript"&gt; var titlestring = "a very long string common to all my links that i would like to have only once in the file in order to gain weight." var links = document.getelementsbyclassname('t'); for ( var l in link ) { l.setattribute('title', titlestring); } &lt;/script&gt; </code></pre> <p>odkaz a skript lze přidat prostřednictvím <a href="http://api.drupal.org/api/drupal/includes--common.inc/function/drupal\_set\_html\_head/6">drupal\_set\_html\_head ()</a> head</p><pre><code>drupal\_set\_html\_head('&lt;link href="http://stg.odnoklassniki.ru/share/odkl\_share.css" rel="stylesheet"&gt;&lt;script src="http://stg.odnoklassniki.ru/share/odkl\_share.js" type="text/javascript" &gt;&lt;/script&gt;'); </code></pre><p>kliknutí nejsou v drupalu dobrou praxí. chování se používá místo chování.</p><p>takže ve vašem bloku můžete výstup</p><pre><code> &lt;a class="odkl-klass-stat" href="http://preferans.de"&gt;&lt;span&gt;0&lt;/span&gt;&lt;/a&gt; </code></pre><p>poté můžete ve svém skriptu nastavit několik chování, která můžete vložit do souboru a přidat pomocí drupal\_add\_js ()</p><pre><code> drupal.behaviors.my\_module = function (context) { // this will load on page load odkl.init(); // this will attach a click handler to the links $('.odkl-klass-stat').click(function() { odkl.share(this); return false; }); }; </code></pre> <p><strong> [~ # ~] aktualizováno [~ # ~] </strong></p><p>zkontroloval bych následující:</p><ol> <li> <p>protokoly. pokud máte root přístup, měli byste zkontrolovat věci jako <code>history</code>, které vám poskytnou historii příkazů a protokolované soubory v <code>/var/logs</code>.</p> </li> <li> <p>základní hodnota. pokud máte základní linii jako hash souborů pro práci s aplikačními a systémovými soubory, pomůže vám to hodně. zálohy můžete také použít k porovnání předchozího stavu. pokud používáte zálohu k porovnání souborů, použijte, pokud je to možné, o něco starší. stránka mohla být před nějakou dobou ohrožena a teprve nyní je přesměrování aktivováno.</p> </li> <li> <p>zkontrolujte jakékoli položky. soubory nemusí být na vašem serveru. mohou to být skripty, jako jsou značky typu <code>&lt;script src=”http://baddomain.com/s.js” /&gt;</code> nebo <code>iframe</code>. nevylučujte také obrázky, soubory pdf flash (swf), video soubory. je docela běžným trikem vkládání odkazů do souborů jiného typu obsahu. navrhuji, abyste je zkontrolovali ručně, zejména na začátku a na konci souboru. soubor může být kompletně odkazem/html/javascript nebo se může jednat o legitimní obrazový soubor s koncem odkazu na konci souboru.</p> </li> <li> <p>zkontrolujte neobvyklá data souborů, velikosti a oprávnění, např. 777.</p> </li> <li> <p>zkontrolujte neobvyklé úlohy u cron. někdo ohrožující systém často opustí zadní dveře, aby se sem dostal znovu a znovu. cron je velmi populární způsob, jak toho dosáhnout, pokud se jim podaří dostat se tak daleko.</p> </li> <li> <p>zkontrolujte, zda neexistují soubory. pravděpodobně nebudete mít přístup k protokolům, ale jejich absence je stejně známkou, že někdo po sobě vyčistil.</p> </li> <li> <p>použijte vyhledávače. není divu, že vyhledávače dokáží najít vše. použijte direktivy jako <code>site:</code> <code>site:yoursitehere.com baddomain.com</code> zjistěte, zda se vám nepodaří získat nějaké zásahy.</p> </li> <li> <p>často bude odkaz nebo přesměrování zamlženo, takže by měl být pečlivě analyzován dlouhý javascriptový kód s proměnnými s jedním písmenem.</p> </li> <li> <p>zachyťte pakety pomocí nástroje jako wireshark nebo tcpdump ze zabezpečené pracovní stanice na web. uložte jej do souboru a vyhledejte v něm části adresy url.</p> </li> <li> <p>zkontrolujte záznamy databáze, které mohou být dotazovány nebo aktualizovány. odkaz mohl být vložen do databáze, nikoli do php.</p> </li> <li> <p>nevylučujte pracovní stanici klienta. v případě potřeby použijte bezplatný online antivirový program. zkontrolujte také <code>nslookup</code> a podívejte se, k čemu se to vyřeší. zkontrolujte rozšíření prohlížeče, vymažte mezipaměť a zkontrolujte soubory <code>hosts</code>.</p> </li> </ol><p>chcete-li to vyčistit (pokud jste ohroženi), musíte se vrátit zpět na holý kov a znovu jej nainstalovat. je to bolestivé, ale je to jediný způsob, jak se ujistit, že máte všechno.</p><p>chcete-li tomu zabránit v budoucnu, měli byste dělat následující (i když již možná některé z nich děláte):</p><ol> <li> <p>vytvářejte servery, včetně používání doporučení výrobce o bezpečných konfiguracích, pomocí aktuálního softwaru. používejte přísnou kontrolu zabezpečení, jako jsou oprávnění, zásady týkající se hesel. viz také <a href="https://security.stackexchange.com/questions/7141/folder-and-file-permission-shared-host-advice/7171#7171">sdílená oprávnění ke složkám a souborům doporučení hostitele</a> .</p> </li> <li> <p>implementujte postupy kontroly kvality, jako je testování v prostředí s nízkým zabezpečením, kontrola kódu a testování.</p> </li> <li> <p>nechte zranitelnost své webové aplikace/webu ověřit alespoň jednou profesionálním certifikovaným testerem. podívejte se na testery certifikované evropskou radou, iso 27001 a pci. <a href="http://www.eccouncil.org/certification/licensed\_penetration\_tester.aspx">http://www.eccouncil.org/certification/licensed\_penetration\_tester.aspx</a> </p> </li> <li> <p>podívejte se na stránky owasp www.owasp.org a <a href="http://phpsec.org/projects/guide/2.html">http://phpsec.org/projects/guide/2.html</a> , kde najdete zdroje zabezpečení webových aplikací.</p> </li> <li> <p>použijte nástroje systému prevence narušení (ips). v závislosti na poskytovateli hostingu však můžete mít omezení ohledně toho, co můžete použít. host založené ips nástroje by měly být v pořádku, pokud máte vyhrazený virtuální počítač.</p> </li> </ol><p>doufám, že to pomůže. jinak byste mohli poskytnout více informací o systémech, které používáte?</p> <p>budete muset mít docela trochu provozu na vaše stránky, aby si je. pokračujte ve vytváření skvělého obsahu. google těmto lidem nedá snadné.</p><p>ujistěte se, že máte navigaci označenou sémantickým html a do své nabídky vložte id <code>nav</code> nebo <code>navigation</code>. to googlu pomůže zjistit, jaké odkazy jsou vaše navigace. (na rozdíl od seznamu odkazů).</p><p>jakmile je získáte, google vám dá možnost ovládat, jaké odkazy chcete ve svých odkazech na podstránky pomocí nástrojů pro webmastery google.</p><p>neexistuje snadný nebo veřejně známý algoritmus, který vám poskytne odkazy na podstránky. a jsem si jistý, že se algoritmus neustále mění.</p><p><strong>not nots</strong>:</p><ul> <li>nepoužívejte javascript pro odkazy a nabídky.</li> <li>nemysli na to příliš mnoho a dejte mu čas, odkazy na podstránky jsou vzácné.</li> </ul> <p>v nabídce <code>tools &gt; import</code> na vašem webu je plugin, který můžete nainstalovat s názvem <strong> <a href="http://wordpress.org/extend/plugins/wpcat2tag-importer/">převaděč kategorií a značek</a> </strong>, který po instalaci vám poskytne kontrolu nad tím, jak zacházet s kategoriemi, které byste chtěli převést.</p><p>jedná se o relativně bezbolestný proces ve třech případech, kdy jsem ho použil, ale nikdy jsem se nezabýval migrací starších adres url. pokud se jedná o problém a kategorie „slimáci“ pro kategorii jsou stejné a běžíte pod aplikací apache, mělo by to být trikem některých směrnic <code>.htaccess</code>. takže za předpokladu, že máte adresy url, jako například:</p><pre><code>http://example.com/archive/category/foo http://example.com/archive/category/bar </code></pre><p>a chci je změnit na:</p><pre><code>http://example.com/archive/tag/foo http://example.com/archive/tag/bar </code></pre><p>do svého souboru <code>.htaccess</code> byste přidali směrnice pro každou z nich, například:</p><pre><code>redirect permanent /archive/category/bar http://example.com/archive/tag/bar redirect permanent /archive/category/foo http://example.com/archive/tag/foo </code></pre><p>nyní to předpokládá, že je chcete přesměrovat, a žádný z autorů vašeho blogu tyto kategorie nepřidá!</p><p>ale obecně by to byl přístup, který by fungoval.</p><p>pokud jste <strong> vůbec </strong> znepokojeni ztrátou dat, když změníte obsah, zálohujte databáze mysql. <em> promiň, musel jsem to křičet. : -) </em> a pokud jde o haywire, pak jednoduše obnovte databázi.</p><p>pokud jste ve svém obsahu odkazovali na tyto staré adresy url, přesměrují se dobře. ale můžete také spustit <a href="http://wordpress.org/extend/plugins/search-and-replace/"><strong> wordpress search and replace </strong></a> plugin, který usnadňuje migraci, jako je tato, ale opět, zálohy mysli, zejména s plugin pro vyhledávání a nahrazování, protože provádí změny bez zálohy.</p> <p>toto je sekce pagespeed ​​z mého .htaccess:</p><pre><code>&lt;ifmodule pagespeed\_module&gt; modpagespeed on modpagespeedenablefilters extend\_cache modpagespeedenablefilters collapse\_whitespace modpagespeedenablefilters combine\_css modpagespeedenablefilters move\_css\_to\_head modpagespeedenablefilters remove\_comments modpagespeedenablefilters inline\_css modpagespeedenablefilters rewrite\_javascript modpagespeedenablefilters insert\_img\_dimensions modpagespeedenablefilters rewrite\_images modpagespeedenablefilters rewrite\_css &lt;/ifmodule&gt; </code></pre><p>i když se trochu překrývá s komprese js a css, nevidím žádné negativní výsledky. nastavil jsem drupal 7), abych agregoval a komprimoval css a js.</p><p>tato stránka však není nijak zvlášť silná.</p>