PDA

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



hoster
September 18th, 2016, 21:36
سلام

من میخوام یه فایل txt در php باز بشه
و هر جا که مثلا عبارت " salam " بود عبارت " salam " رو با 7 حرف سمت چپ و 5 حرف از سمت راست رو پاک کنه

و همچنین هرجا که عبارت " ali gof: " بود 5 حرف جلوی این عبارت رو نمایش بده

کلا اینطور ادیت و فایندی(Find) امکان پذیره ؟
ممنون میشم راهنمایی کنید

Rezash
September 18th, 2016, 22:22
سلام
با استفاده از توابعی مثل substr و preg_match و preg_replace و str_replace می تونید اینکار رو بکنید
ترجیحا یک مثال از نمونه متن ورودی و خروجی بدید تا دقیق تر عرض کنم

hoster
September 19th, 2016, 08:38
سلام
با استفاده از توابعی مثل substr و preg_match و preg_replace و str_replace می تونید اینکار رو بکنید
ترجیحا یک مثال از نمونه متن ورودی و خروجی بدید تا دقیق تر عرض کنم

ممنون از شما ببینید یه مثال میزنم
فایل log.txt باز بشه
داخل فایل هرجا عبارت Ali> "Visited" The> رو پیدا کنه و 7 حرف جلوی این عبارت با خود عبارت رو پاک کنه مثلا داخل عبارت مثال 7 حرف جلوی اون 1234567 هست که باید به این شکل پاک کنه Ali> "Visited" The 1234567>

همچنین میخوام داخل همون فایل بعد از اینکه پاکسازی کرد بگرده دنبال عبارتی مثل Ali cant to visit the 44444 ( عبارت 44444 عبارت متغیر است ) بعد باید 44444 رو برام داخل متغیری قرار بده تا من از اون عبارت بتونم در ادامه استفاده کنم و Ali cant to visit the رو پاک کنه

T.Toosi
September 19th, 2016, 13:21
ممنون از شما ببینید یه مثال میزنم
فایل log.txt باز بشه
داخل فایل هرجا عبارت Ali> "Visited" The> رو پیدا کنه و 7 حرف جلوی این عبارت با خود عبارت رو پاک کنه مثلا داخل عبارت مثال 7 حرف جلوی اون 1234567 هست که باید به این شکل پاک کنه Ali> "Visited" The> 1234567

همچنین میخوام داخل همون فایل بعد از اینکه پاکسازی کرد بگرده دنبال عبارتی مثل Ali cant to visit the 44444 ( عبارت 44444 عبارت متغیر است ) بعد باید 44444 رو برام داخل متغیری قرار بده تا من از اون عبارت بتونم در ادامه استفاده کنم و Ali cant to visit the رو پاک کنه


$source = file_get_contents("test.txt");
$replace = preg_replace('/(Ali\> \\"Visited\\" The\>) (\d{7})/i', "$1", $source); // Ali> "Visited" The> 1234567 --> Ali> "Visited" The>
preg_match("/Ali cant to visit the (\d+)/i", $source, $output); //Ali cant to visit the 44444 --> 44444 = $output[1]

hoster
September 19th, 2016, 13:49
$source = file_get_contents("test.txt");
$replace = preg_replace('/(Ali\> \\"Visited\\" The\>) (\d{7})/i', "$1", $source); // Ali> "Visited" The> 1234567 --> Ali> "Visited" The>
preg_match("/Ali cant to visit the (\d+)/i", $source, $output); //Ali cant to visit the 44444 --> 44444 = $output[1]

بسیار سپاس گذارم
ولی الان مشکل این هست که چنین ساختاری (( /(Ali\> \"Visited\" The\>) (\d{7})/i )) روباید چگونه نوشت ؟

T.Toosi
September 19th, 2016, 14:16
بسیار سپاس گذارم
ولی الان مشکل این هست که چنین ساختاری (( /(Ali\> "Visited" The\>) (\d{7})/i )) روباید چگونه نوشت ؟

Ali> "Visited" The> ثابت هست ؟

hoster
September 19th, 2016, 16:02
Ali> "Visited" The> ثابت هست ؟

خیر متاسفانه عبارت های مخلتف به شکل های مختلف تکرار شده اند
باید آنهارو حذف کند
و اکثر عبارت ها نیز دارا <> () ; : '" می باشد در این مورد نیز میتوانید مارو راهنمایی کنید؟

T.Toosi
September 19th, 2016, 23:43
خیر متاسفانه عبارت های مخلتف به شکل های مختلف تکرار شده اند
باید آنهارو حذف کند
و اکثر عبارت ها نیز دارا <> () ; : '" می باشد در این مورد نیز میتوانید مارو راهنمایی کنید؟

باید یک الگو ثابت بهم بدین، مثلا اول همیشه username بعد > سپس داخل "" اکشن کاربر قرا میگیره و .. اگر هم الگو بالا ثابت هست میشه درش آورد.

hoster
March 30th, 2017, 15:30
باید یک الگو ثابت بهم بدین، مثلا اول همیشه username بعد > سپس داخل "" اکشن کاربر قرا میگیره و .. اگر هم الگو بالا ثابت هست میشه درش آورد.

من تا حدودی با متد ها قبلی که دایدید کارمو راه انداختم

الان میخوام مثلا این
عبارت رو تو عبارت ها پیدا کنه

<a href="https://test.domain.com/visitor/checker.aspx?why=123456789">refresh</a>

این عبارت رو بگیره و فقط اینو(https://test.domain.com/visitor/checker.aspx?why=123456789) برداره بده به یه متغیر

میشه یه همچنین الگویی برامون درست کنین؟

ممنون

T.Toosi
March 30th, 2017, 15:52
من تا حدودی با متد ها قبلی که دایدید کارمو راه انداختم

الان میخوام مثلا این
عبارت رو تو عبارت ها پیدا کنه

<a href="https://test.domain.com/visitor/checker.aspx?why=123456789">refresh</a>

این عبارت رو بگیره و فقط اینو(https://test.domain.com/visitor/checker.aspx?why=123456789) برداره بده به یه متغیر

میشه یه همچنین الگویی برامون درست کنین؟

ممنون


<?php
$ss = '<a href="https://test.domain.com/visitor/checker.aspx?why=123456789">refresh</a>';
preg_match("/<a href=\"(.*)\">refresh<\/a> /", $ss, $output);
echo $output[1];

hoster
March 30th, 2017, 16:16
<?php
$ss = '<a href="https://test.domain.com/visitor/checker.aspx?why=123456789">refresh</a>';
preg_match("/<a href=\"(.*)\">refresh<\/a> /", $ss, $output);
echo $output[1];

ممنون

اما کار نکرد

ببینید یه 10 خط عبارت هست که باید اون عبارت رو پیدا کنه و اون url رو استخراج کنه بعد بده به متغیر

error:
Got error 'PHP message: PHP Notice: Undefined offset: 1

T.Toosi
March 30th, 2017, 16:20
ممنون

اما کار نکرد

ببینید یه 10 خط عبارت هست که باید اون عبارت رو پیدا کنه و اون url رو استخراج کنه بعد بده به متغیر

اگر کل عبارت رو بفرستید بهتر میتونم regex بنویسم که کار کنه.

hoster
March 30th, 2017, 16:29
اگر کل عبارت رو بفرستید بهتر میتونم regex بنویسم که کار کنه.
بفرما


<html><head><title>Test Visit</title></head><body>
<h1>To see visit <a href="https://test.domain.com/visitor/checker.aspx?why=123456789">refresh</a>.</h1>
</body></html>

T.Toosi
March 30th, 2017, 16:33
بفرما


<?php
$ss = '<html><head><title>Test Visit</title></head><body>
<h1>To see visit <a href="https://test.domain.com/visitor/checker.aspx?why=123456789">refresh</a>.</h1>
</body></html>';
preg_match("/<a href=\"(.*)\">refresh<\/a>/", $ss, $output);
echo $output[1];