PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تغییر لینک در 10 فایل php به صورت یک جا ممکن است؟



سیدرضا بازیار
October 13th, 2018, 19:27
سلام دوستان

من تعدادی فایل php دارم که توی همه اونه یه لینک هست. حالا میخوام لینک رو توی همه فایل ها تغییر بدم (به صورت گروهی)

مثلا هر جا لینک زیر رو ببینه:
example.com
تبدیلش کنه به
example.ir

این کار رو میشه با استفاده از ترمینال انجام داد؟
یا نرم افزار خاصی توی لینوکس یا مک وجود داره که این کار رو بتونه برام انجام بده؟

Ahmad652
October 13th, 2018, 19:45
سلام دوستان

من تعدادی فایل php دارم که توی همه اونه یه لینک هست. حالا میخوام لینک رو توی همه فایل ها تغییر بدم (به صورت گروهی)

مثلا هر جا لینک زیر رو ببینه:
example.com
تبدیلش کنه به
example.ir

این کار رو میشه با استفاده از ترمینال انجام داد؟
یا نرم افزار خاصی توی لینوکس یا مک وجود داره که این کار رو بتونه برام انجام بده؟


سلام
اول یه بک آپ از پوشه بگیرید و بعد این دستور رو داخل پوشه امتحان کنید

sed -i 's/example.com/example.ir/g' *

سیدرضا بازیار
October 13th, 2018, 19:52
سلام
اول یه بک آپ از پوشه بگیرید و بعد این دستور رو داخل پوشه امتحان کنید

sed -i 's/example.com/example.ir/g' *

این دستور رو تست کردم جواب نداد

Ahmad652
October 13th, 2018, 19:59
این دستور رو تست کردم جواب نداد

میتونید ویرایشگر brackets رو روی مک نصب کنید. بعد از منو file گزینه open folder رو بزنید و فولدر مورد نظر رو انتخاب کنید.
حالا از منو find گزینه replace in files رو انتخاب کنید.

mnajafi33
October 13th, 2018, 20:03
سلام دوستان

من تعدادی فایل php دارم که توی همه اونه یه لینک هست. حالا میخوام لینک رو توی همه فایل ها تغییر بدم (به صورت گروهی)

مثلا هر جا لینک زیر رو ببینه:
example.com
تبدیلش کنه به
example.ir

این کار رو میشه با استفاده از ترمینال انجام داد؟
یا نرم افزار خاصی توی لینوکس یا مک وجود داره که این کار رو بتونه برام انجام بده؟

تمام 10 تا فایل رو با notepad++ باز کن از finde replace استفاده کن
و دکمه replace all in all opened documents رو بزنید متن انتخاب شده به متن جایگزینی که وارد کردین توی تمام صفحه هایی که باز کردین جایگزین میشه
من خودم این کار رو انجام دادم و شده
قبلش بکاپ بگیرین
باتشکر

Ahmad652
October 13th, 2018, 20:07
تمام 10 تا فایل رو با notepad++ باز کن از finde replace استفاده کن
و دکمه replace all in all opened documents رو بزنید متن انتخاب شده به متن جایگزینی که وارد کردین توی تمام صفحه هایی که باز کردین جایگزین میشه
من خودم این کار رو انجام دادم و شده
قبلش بکاپ بگیرین
باتشکر

البته np++ فقط نسخه ویندوز داره.
لازم هم نیست کل فایلها رو باز کنند. با replace in files میشه انجام داد.

1eng.ir
October 13th, 2018, 20:08
این دستور رو تست کردم جواب نداد

چرا نشد؟

اگه ویندوز با Npp بزن
Find in Files
Replace in Files

سیدرضا بازیار
October 13th, 2018, 21:11
چون از سیستم عامل مک استفاده میکنم در حال حاضر این نرم افزار هایی رو که معرفی کردید رو ندارم

یکم کنجکاو شدم و تصمیم گرفتم یه کد با php بنویسم که برام اون رو انجام بده :d

کد رو میزارم شاید به دردتون بخوره



<?php
$folder = 'folder';
echo '<p><b>file haye mojod</b> dar <span style="color:red">'. __DIR__ .'</span></p> ';

foreach (glob("$folder/*.php") as $filename) {

$file = file_get_contents($filename);

if( strpos( $file, 'text' ) === false ){
echo '<span style="color:red">NO: </span>';
}else{
echo '<span style="color:blue">YES: </span>';
}

echo $filename.'<br>';

if (file_put_contents($filename, preg_replace("/text/", "new text", $file))) {

} else {
echo "peyda nashod";
}
}


قبلا با ترمینال هم انجام میدادم اما یادم رفته. لطفا اگه کسی بلده، روش ترمینال رو هم بهم بگه