PDA

View Full Version : سوال: یک سوال در مورد ذخیره رشته در آرایه



terminator68
دوشنبه 15 تیر 1394, 12:37 عصر
با سلام.
راستش من اول بگم php بلد نیستم.
این سوال یکی از دوستامه....

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

که مثلا این مقادیر رو وقتی از ورودی گرفت بتونه رشته رو جدا کنه و در خروجی نشون بده:


$Template = " begin<salam1>
begin<salam2>
begin<salam3>
begin<salam4>


begin<


salam5


>


begin<


>



حتی اون اینترهایی که تو بین خط ها هست هم می خواد تو خروجی نشون بده....
دقیقا بعد از begin< اون متن های salam رو بگیره و تو خروجی یا آرایه نشون بده
دوستان کسی بلده که کمک کنه بنویسم؟

hadi2016
دوشنبه 15 تیر 1394, 16:40 عصر
شاید به دردت بخوره


$Template = str_replace('begin<','',$Template);

$Template = str_replace('>','',$Template);

echo $Template;

terminator68
دوشنبه 15 تیر 1394, 17:04 عصر
نه از این روش نمی خوام...

یکی از دوستام این شکلی نوشتش:

$Pattern = "/begin\<(.*)\>/ ";
preg_match_all($Pattern , $Template , $Matches);
$tmp=array();
foreach($Matches[0] as $Key=>$Value)
{
$Value=trim($Value,"begin<");
$Value=trim($Value,">");
$tmp[$Key]=$Value;
}
var_dump($tmp);
?>


ولی مشکل اینه که اون آخرین salam رو نمیگیره و اون اینتر های لای خط ها رو هم نمی گیره....

terminator68
سه شنبه 16 تیر 1394, 19:03 عصر
کسی نمیدونه اینو چیکار باید بکنم؟
من خودم بلد نیستم.
یکی از دوستان اگه مشکلشو بلده لطف کنه بگه ممنون میشم...

H:Shojaei
سه شنبه 16 تیر 1394, 20:30 عصر
$Template = " begin<salam1>
begin<salam2>
begin<salam3>
begin<salam4>

begin<
salam5
>


begin<


>
";
$Pattern = "/begin\<\n*\s*(.*)\n*\s*\>/";
preg_match_all($Pattern , $Template , $Matches);
$tmp=array();
foreach($Matches[0] as $Key=>$Value)
{
$Value=trim($Value,"begin<");
$Value=trim($Value,">");
$tmp[$Key]=$Value;
}
var_dump($tmp);