PDA

View Full Version : یافتن یه کلمه ی خاص در یک متن توسط PHP



2664569
جمعه 13 تیر 1393, 12:41 عصر
سلام خدمت تمام دوستان
یه سوال ( مبتدی ) داشتم که امیدوارم دوستان بتونن کمکم کنن
یه متن خیلی بزرگ هست که میخوام توسط پی اچ پی ، هر کلمه ای که بعد از کلمه ی test و قبل از کاراکتر ' هست رو میخوام استخراج کنه و جدا نشون بده
یعنی شما فرض کنین یه متن شبیه این هست:
folan folan folan test123' folan folan folan test456' folan

الان از متن بالا میخوام 123 و 456 استخراج شه
چون بعد از کلمه ی تست و قبل از کاراکتر ' قرار گرفتن
لازم به ذکر است من فوقالعاده مبتدی ام و خواهش میکنم کامل توضیح بدید و به راهنمایی اکتفا نکنید
پیشاپیش ممنون

2664569
جمعه 13 تیر 1393, 13:58 عصر
آقا
من تونستم خودم کاری کنم کلمه از بقیه جدا بشه
اما
یه حلقه ی فوریچ لازم دارم که بلد نیستم حلقه بنویسم
چون حلقه قراره اطلاعات رو نه از دیتابیس بلکه از متنی که کنارشه در بیاره ، کارم سخت شده
خواهشا یه نفر کمک کنه

marys_farahani
جمعه 13 تیر 1393, 15:16 عصر
<?php
$str = "folan folan folan test123' folan folan folan test456' folan test486' folan folan test4321' folan test8765' ";

$start = 'test';
$end = "'";

$arr_str = (explode("'",$str));
for($i=0;count($arr_str)>$i;$i++)
{
$arr_str[$i].= "'";
}
$pattern = sprintf(
'/%s(.+?)%s/ims',
preg_quote($start, '/'), preg_quote($end, '/')
);

//print count($arr_str);

for($i=0;count($arr_str)>$i;$i++)
{
if (preg_match($pattern, $arr_str[$i], $matches)) {
list(, $match) = $matches;
echo $match;
echo "<br/>";
}
}

bagherok
جمعه 13 تیر 1393, 16:14 عصر
$text=" folan folan folan test123' folan folan folan test456' folan";
$pattern="/test([0-9]*?)'/";
preg_match_all ($pattern, $text, $findnum);
$findnum=$findnum[1];
echo '<pre>'.print_r($findnum,true).'</pre>';




output:
Array
(
[0] => 123
[1] => 456
)

#Elahe#
جمعه 13 تیر 1393, 16:22 عصر
البته متغیر $str باید برابر با مسیر فایل مورد نظر باشه
مثلا :

$str = fopen("file.txt" , "r")