PDA

View Full Version : حذف قسمتی از متن



nsco_nsco
یک شنبه 03 آذر 1392, 20:45 عصر
با سلام و خداقوت دوستان یک سوال داشتم من یک فایل متنی دارم که باید قسمتی از اون حذف بشود البته این را بگم که چندین تا هست اما فرض یکی می گیرم به عنوان مثال 100 خط دارن و من اون را داخل یک متغییر ریختم در یک خط از این نوشته شده 1234 می خوام هرچی قبل از این بوده پاک بشه و همچنین در خط دیگری یعنی ادامه این نوشته 5678 می خوام ادامه این هم پاک بشه و مطلب این وسط بمونه ممنون میشوم کدی برای راهنمایی در اختیارم قرار بدید با تشکر از همه شما دوستان .

abolfazl-z
یک شنبه 03 آذر 1392, 21:04 عصر
ببینید کمکتون میکند :

<?php
echo preg_replace('/.*1234/','1234','before 1234 after');
echo '<br>';
echo preg_replace('/1234.*/','1234','before 1234 after');
?>


اگر خواستین خود عبارت 1234 چاپ نشود آرگومان دومی را برابر '' (تک کتیشن) قرار دهید.

nsco_nsco
یک شنبه 03 آذر 1392, 21:07 عصر
سلام ممنون میشوم یک توضیح در موردش بدید با تشکر

nsco_nsco
یک شنبه 03 آذر 1392, 21:12 عصر
سلام ممنونم از پاسختون ولی استفاده از این کد را درست نفهمیدم ببینید من می خوام تا به 1234 میرسه را همراه همین یک دو سه چهار همه را پاک کند و در ادامه به 5678 که میرسد ادامش را پاک کند به صورت زیر مثلا:

****
****
****
1234
**********
**********
**********
**********

5678
***
***
***


خروجیش بشه
**********
**********
**********
**********

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

abolfazl-z
یک شنبه 03 آذر 1392, 21:21 عصر
دوست عزیز همیشه منظورتان را واضح بیان کنید !

کد ذیل را ببینید :


<?php
$str = '****
****
****
1234
**********
**********
**********
**********

5678
***
***
***';
echo preg_replace('/(1234|5678)/','',$str);
?>

شما می توانید هر چقدر رشته در داخل پرانتز وارد کنید برای مثال :


(acd|b|c|d|...)

a_ahmadi
یک شنبه 03 آذر 1392, 21:28 عصر
<?php
$string ='
****
****
****
1234
**********
**********
**********
**********

5678
***
***
***
';
if( preg_match( '/1234(.*?)5678/si' , $string , $matches ))
$contents = $matches[1];
echo $contents;
?>