سایت خود را بسازید ، به روش saalek110

saalek110

Well-Known Member
JavaScript:
<script type="text/javascript">
var str = 'webbbb';
var reg = /^web{1,}$/;
if(reg.test(str)){
    alert('مقادیر معتبر است');
}
else{
    alert('مقادیر معتبر نیست');  
}
</script>

کد بالا ، جاوا اسکریپت است. از همون تاپیک نقل کردم.شاید این پست بی ربط باشد ، رد کنید بروید.
 
آخرین ویرایش:

saalek110

Well-Known Member
اگر از دید php به اون تاپیک رگولار اکسپرژن نگاه کنیم ، از تابع preg_match فقط استفاده شده که یک آرایه میدهد و با print_r چاپش کرده. البته صفحه 4 اش را دارم الان اضافه می کنم، قدیمی ها را میگم.

ولی ما دنبال جایگزینی موارد پیدا شده با چیزهای دیگه هستیم.
 
آخرین ویرایش:

saalek110

Well-Known Member
کاربرد رگولار اکسپرژن در php

preg_replace


PHP:
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str);


نتیجه اجرا ببینید:

PHP:
Visit W3Schools!



کد بالا ، هم جایگزین کرده و هم چاپ کرده!
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
    $pattern = "/hello/i";
   $post=preg_replace($pattern, "salam", $post);
                    echo $post;

Screenshot_6.png


در این مثال دنبال الگویی به نام hello گشتیم و با salam جایگزین کردیم.
درسته که hello خیای ساده است ولی به هر حال یک الگو است. با یک مثال ساده اولش شروع کردم تا طرز کار تابع را بفهمیم.

اون حرف i را در صفحه دوم تاپیک رگولار اکسپرژن گفتیم. بهش میگن modifier و وقتی i باشد یعنی بزرگی و کوچکی حروف مهم نیست.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
    $pattern = "/hello/i";
   $post=preg_replace($pattern, "salam", $post);
   $pattern = "/^https/";
     $post=preg_replace($pattern,"link---",$post);
                    echo $post;

Screenshot_7.png
 

saalek110

Well-Known Member
PHP:
    $pattern = "/hello/i";
   $post=preg_replace($pattern, "salam", $post);
   $pattern = "/^https:\/\//";
     $post=preg_replace($pattern,"link---",$post);
                    echo $post;

Screenshot_8.png

توضیح این قسمت:

PHP:
\/\/

چون در رگولار اکسپرژن ممیز معنی خاصی دارد ، اگر بخواهیم بگوییم ممیز در متن ما هست ، قبلش بک اسلش(برعکس ممیز، همون دکمه پاک کردن که در کیبورد کامپویتر بالای دکمه اینتر است) می گذاریم تا معلوم بشه معنی خاص ممیز منظورمان نیست و دنبال خود ممیز هستیم.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
    $pattern = "/hello/i";
   $post=preg_replace($pattern, "salam", $post);
$pattern = "(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})";
     $post=preg_replace($pattern,"link---",$post);
                    echo $post;

Screenshot_9.png

 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
    $pattern = "/hello/i";
   $post=preg_replace($pattern, "salam", $post);
$pattern = "(https?:\/\/(?:www\.(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,})";
     $post=preg_replace($pattern,"link---",$post);
                    echo $post;

Screenshot_10.png
 

saalek110

Well-Known Member
PHP:
$url = "https://example.com/products.php?category=electronics";
$pattern = "/^(https:\/\/.+\/)([^?]+)(.*)$/";
$replacement = '<a href="$1$2">$2</a>';
$result = preg_replace($pattern, $replacement, $url);
echo $result;

PHP:
<a href="https://example.com/products.php">products.php</a>?category=electronics

فعلا تست نکردم.

 

saalek110

Well-Known Member
PHP:
$m = '|([\w\d]*)\s?(https?://([\d\w\.-]+\.[\w\.]{2,6})[^\s\]\[\<\>]*/?)|i';
$r = '$1 <a href="$2">$3</a>';

$status_text = preg_replace($m,$r,$status_text);
echo $status_text;

 

saalek110

Well-Known Member
PHP:
$string = "http://www.foo.bar/";

PHP:
"#^\w+://(www\.)?\w+\.\w+#i"

پترن بالا را در سایت زیر پیدا کردم:


جالبی اش اینه که قالب را خیلی جامع تعریف کرده ، مثلا www. را اختیاری گرفته. اون علامت سوال بعدش اختیاری اش می کند.
یا مثلا +w یعنی تعدادی حروف. بعلاوه سمت راست دبلیو است.
و این:
PHP:
\w+\.\w+

یعنی تعدادی حروف و بعدش یک نقطه و باز بعدش تعدادی حروف. منظورش همان foo.bar است.

حتی به جای http هم +w گذاشته ، یعنی تعدادی حروف.
 

saalek110

Well-Known Member
معماری css سایت و فروم:


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


بعد یک پوشه ساختم داخلش به نام forum پس آدرس فرومم میشه:


داخل پوشه فروم یک پوشه ساختم به نام parts.

داخل پوشه parts این این فایلها را دارم:


Screenshot_1.png

اول فایل index.php که صفحه اول فروم میشه ،اینها را نوشتم:

PHP:
include"parts/central.php";
include"parts/header.php";
include"parts/link_line.php";

فایل سنترال چیزهای کلی را می سازه مثل کادر دور صفحه یا کادر دور یک پیام. این پیام ممکن است در فروم یا سایت باشه.

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

Screenshot_3.png


فایل سنترال هم در فروم و هم در سایت ایکلود میشه تا شباهتهای شکل و رنگ همه جا باشه.
فایل هدر و لینک لاین در فایلهای دیگه فروم هم اینکلود میشه. تا دو نوار شکل بالا ، در همه فایلهای فروم دیده بشه.

و انتهای فایل index.php اینها را نوشتم:

PHP:
include"parts/index_footer.php";

فایل فوتر این را ساخته:

Screenshot_2.png

یعنی آمار کلی فروم را میگه.این فوتر فقط در صفحه ایندکس اینکلود میشه.
شاید بعدا یک فوتر برای بقیه صفحات بسازم.
 
آخرین ویرایش:

saalek110

Well-Known Member
محتوای central.php:

CSS:
<!DOCTYPE html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl">
<head>
<title>Saalek110</title>

<style>
          #page {  
            padding-top: 40px;
            padding-bottom: 150px;
        padding-left: 15px;
         padding-right: 15px;
        border:7px solid green;

      margin-top: 15px;
          margin-right: 8px;
            margin-left:  8px;
            margin-bottom: 40px;
                     }
                                                           

#colection{
               border-spacing: 50px;
                  text-align: right;
                         width:85%;


}


#border {
        background-color: rgba(220,150,120,1);
border-radius: 50px;
              padding-top: 20px;
              padding-bottom: 20px;
               padding-left: 20px;
               padding-right: 20px;                        
                border:7px solid yellow;                    
                margin-top: 20px;
             margin-right: 20px;
            margin-left:  20px;
            margin-bottom: 20px;
}
 #desktop{
               
 font-size:12px;  

 text-align:center;
  color:red;
  font-size:8px;
  background-color:powderblue;
  border:15px solid green;      
                padding-top: 20px;
                padding-bottom: 20px;
               padding-left: 20px;
                padding-right: 20px;  
                 margin-top: 20px;
             margin-right: 20px;
            margin-left:  20px;
             margin-bottom: 20px;
  }
    #ttt{
               border-spacing: 50px;
                  text-align: right;
                         width:85%;


}

#ggg {
        background-color: rgba(220,150,120,1);
border-radius: 50px;
              padding-top: 20px;
              padding-bottom: 20px;
               padding-left: 20px;
               padding-right: 20px;                        
                border:7px solid yellow;                    
                margin-top: 20px;
             margin-right: 20px;
            margin-left:  20px;
            margin-bottom: 20px;
}
 #mmm{
               
 font-size:12px;  

 text-align:center;
  color:red;
  font-size:8px;
  background-color:powderblue;
  border:15px solid green;      
                padding-top: 20px;
                padding-bottom: 20px;
               padding-left: 20px;
                padding-right: 20px;  
                 margin-top: 20px;
             margin-right: 20px;
            margin-left:  20px;
             margin-bottom: 20px;
  }
</style>
</head>
<body>
       <?php
       
?>
</body>
</html>

در حقیقت یک سایت کامل با بدنه خالی است.منظور استفاده از css اون بوده فقط.
راه کتابی اینه که فایل css با پسوند css باشه و بهش لینک بشه ، ولی مشکلش اینه وقتی فایل css را تعییر می دهید باید کچ بروسر را هم پاک کنید تا فایل css قدیمی پاک بشه. و دردسر داره. برای همین من بجایش از روش inclue کردن استفاده می کنم.
 
بالا