نمایش نتایج 1 تا 6 از 6

نام تاپیک: Reqular Expression

  1. #1

    Reqular Expression

    سلام
    به نظز شما كدام روش در عبارت منظم بهتره ؟
    چون ميگن posix سرعتش از perl بهتره و توي php manual هم گفته اگر از تابع ereg() استفاده نشه بهتره
    اصلآ استفاده از preg_match() بهتره يا ereg() ؟
    حالا شما با اين وجود كدام روش رو پيشنهاد ميكنين ؟
    من كمي با posix آشنايي دارم ولي يك بخش گير كردم يك الگو نياز دارم كه ميان دو تگ رو برام دريافت كنه
    مثلآ محتويات بين <title> و </title> رو بگيره و توي آرايه نشون بده

    ممنون ميشم اگر دوستان كمي راهنمايي كنن آخه كل نت رو گشتم فقط درباره نوع prel مقاله هستش حالا اگر نوع prel رو پيشنهاد مي دين اونو رو دنبال كنم


  2. #2

    نقل قول: Reqular Expression

    ereg مال php قدیمی هست و اصلا دیگه توصیه نمیشه
    به جاش از preg_match استفاده کنید

    <?php
    $url="http://www.funpatogh.com";
    $html=file_get_contents($url);
    if(preg_match('/<title>(.*)<\/title>/si', $html ,$Match ) ) {
    echo $Match[1];
    }
    ?>
    آخرین ویرایش به وسیله funpatogh : شنبه 06 آذر 1389 در 01:19 صبح

  3. #3

    نقل قول: Reqular Expression

    پس با اين وجود از همون شيوه perl استفاده كنم چون اين و توابع براي perl هستش


    (.*?)


    نقطه براي اينه كه با كليه عبارات تطبيق داره و ميتونه هر چيزي رو نشون بده
    ستاره يعني اون عبارت قبلي(معادل نقطه) ميتونه باشه يا نباشه
    علامت سوال هم يعني مقادير داخل پرانتز اختياري هستن
    ولي بازم درست متوجه نشدم
    پرانتر ها هم براي اينه كه روي كلاس قبلي خود تاثير نذارن
    و در مورد تگها هم بگين آيا در تعريف كلاسها در هنگام چاپ تگها به حساب نمي يان
    و در مورد اون si هم بگين

  4. #4

    نقل قول: Reqular Expression

    اون علامت سوال زیاد بود
    . یعنی هرکاراکتری می تواند ظاهر شود و * به این معناست که قبل از آن می تواند 0 یا بیشتر بار تکرار شود
    i به این معنیست که بین حروف کوچک و بزرگ فرقی قایل نشود
    s هم به این معنیست که فضای خالی هم میتواند داشته باشد
    این s رو برای اینکه بهتر متوجه بشید این مثال رو اجرا کنید

    <?php
    $html="<title>
    funpatogh
    </title>";
    if(preg_match('/<title>(.*)<\/title>/i', $html ,$Match ) ) {
    echo $Match[1];
    }else{
    echo "no";
    }
    ?>

    و بعد s بگزارید و دوباره تست کنید تا نیجه رو ببینید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    کرج
    پست
    238

    نقل قول: Reqular Expression

    سلام
    سوال دارم
    اگر تگ بسته <title/> تو یه خط دیگه باشه چیکار باید کرد؟چون نقطه "." بجای newline قرار نمی گیره.

  6. #6

    نقل قول: Reqular Expression

    توی مثال دوم که بنده زدم همون طور که میبینید </title> توی خط 4 هست و تگ شروعش در تگ 2 پس توی یک خط نیستند و از

    '/<title>(.*)<\/title>/si'
    استفاده شده است

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •