Toplu Ekle Kod önce

8 Cevap php

Ben eklemek istiyorum

<?php include_once('google_analytics.php'); ?>

yaklaşık 100 php dosyalarının kapanış gövde etiketinden önce. Ne yazık ki siteyi yapılan kişi bir üstbilgi veya altbilgi şablonu yapmak değildi.

Bunu yapmanın en iyi yolu nedir? Ben grep / dosyaların bir listesini almak ve sed Xargs aracılığıyla sonuçları boru bulmak kullanarak denedim, ama hayır şans yaşadım. Herhalde regex yanlışlar da var. Herkes bu konuda bana yardımcı olabilir misiniz?

Ayrıca, tavsiye ederim, Apple OS X için herhangi bir grafik araçları vardır?

Thanks, Mike

edit

find . -print0 -name "*.php" | xargs -0 perl -i.bak -pe 's/<\/body>/<?php include_once("google_analytics.php"); ?>\n<\/body>/g'

çalışır.

8 Cevap

Sed kullanarak:

 sed -i s/'<\/body>'/"<?php include_once('google_analytics.php'); ?>\n<\/body>"/ *.htm

-i seçeneğini yerinde dosyasını düzenler. Derseniz -iBAK o düzenlemeden önce dosyanın bir yedeğini oluşturur.

GUI araçları ilgileniyorsanız, TextMate indir. Bir klasördeki tüm dosyaları 100 koyun ve TM ile bu klasörü açın. Bu proje moduna TM koyacağız ve bir kenar çubuğu tüm dosyaları görürsünüz. Şimdi, Edit>Find>Find In Project, </body> "bulmak" alanında, <?php include_once('google_analytics.php'); ?></body> "yerine" alanına koymak, vurmak yerine ve çalışmasına izin.

this calls for an ed script

#!/bin/sh
for i in *.html; do
ed $i << \eof
?</body>?s/^/<?php include_once('google_analytics.php'); ?>&/
w
q
eof
done

Bu {[(3, dizinde Ken Thompson's ed(1) metin editörü on each file and makes the necessary edit. If you want it to work on specific files rather than on every .html, sadece değiştirmek *.html Hiç Unix için yazılmış ilk (kelimenin tam anlamıyla) programlarından birini yangınları )]}.

Şimdi Wikipedia linki Okuma, ilginç bir şey öğrendim. Ken Thompson o ed (1) yazdı kadar görünüşe göre onlar sadece matematiksel bir ifade vardı, düzenli ifadelerin ilk gerçek uygulama yaptı.

Sen $files, aşağıdaki çözüm çalışması yapmak üzere dosya ile bir dizi sağlamanız gerekmektedir:

foreach ($files as $file)
{
    $txt = file_get_contents($file);

    $txt = str_replace('</body>', '<?php include_once(\'google_analytics.php\'); ?>'."\n".'</body>', $txt);

    file_put_contents($file, $txt);
}

Dreamweaver find / tüm yerel site için yerini yapacak; Ben diğer html editörleri de olur eminim.

Dreamweaver gibi bazı IDE vb bunlardan birini kullanın ve bir bulurum ve istediğiniz kodu ile yakın beden etiketini değiştirerek değiştirebilirsiniz bulmak ve birçok dosya, tüm klasörlerde değiştirin yapmak için işlevsellik sağlamak.

Ben bir PHP geliştiricisi değilim, ama geçerli bir XML formatı PHP nedir? Öyle görünmüyor ama ben ne biliyorum. Bu cevabın başarısı bile çalıştığınız dosyaları geçerli PHP olup olmadığını daha bağlı olabilir. Ama ... eğer bir XML, beden etiketini maç içeriğini kopyalamak ve eşleşen içerik sonra yeni bir etiket eklemek için (XSLT) dönüştürmek kullanımı oldukça basit olacaktır.

Ne üzerinde değiştirme hakkında

</body>

ile

<?php include_once('google_analytics.php'); ?></body>

?