النتائج 1 إلى 6 من 6

الموضوع: [مشكلة] بالدالة highlight_string(); .

  1. #1
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431

    [مشكلة] بالدالة highlight_string(); .



    السلام عليكم ورحمة الله وبركاته ..


    لدي صفحة فيها حقل نص , يتم فيه كتابة كود php , وبعد كتابة هذا الكود يتم تلوينه بواسطة هذه الدلة ...
    لكن يوجد مشكلة بسيطه
    عندك كتابة
    كود PHP:
    <? print "XP"?>

    ومن ثم تمريره عبر الداله highlight_string
    يتم إخراجه هكذا :
    <? print "XP\"; ?>





    قمت بالدخول لموقع php.net بحثاً عن دوال ...
    ودجربت عدة دوال , منها :

    كود PHP:
    <?
    // func1function print_php_code($str, $type) {
        
    switch ($type) {
            case 
    "text":
                
    $str highlight_string($strtrue);
            break;
            case 
    "file":
                
    $str highlight_file($strtrue);
            break;
        }
        
    $str explode("<br />"$str);
        echo 
    "<div>";
        echo 
    "<ol>\n";
        foreach (
    $str as $line => $syntax) {
            echo 
    "<li><code>" $syntax "</code></li>";
        }
        echo 
    "</ol>\n";
        echo 
    "</div>";
    }
    ?>




    كود PHP:
    <?php  // GET sOURCE O THE PGE
     //  $f = file_get_contents($_SERVER['SCRIPT_FILENAME']);
     //  highlight_string($f);
      // exit();
    ?> 
    <?php
        
    function highlight_code($code$inline=false$return=false// Pre php 4 support for capturing highlight
        
    {
            (string) 
    $highlight "";
            if ( 
    version_compare(PHP_VERSION"4.2.0""<") === )
            {
                
    ob_start(); // start output buffering to capture contents of highlight
                
    highlight_string($code);
                
    $highlight ob_get_contents(); // capture output
                
    ob_end_clean(); // clear buffer cleanly
            
    }
            else
            {
                
    $highlight=highlight_string($codetrue);
            }
            
            
    # Using preg_replace will allow PHP 4 in on the fun
            
    if ( $inline === true )
                
    $highlight=preg_replace("/<code>/i","<code class=\"inline\">",$highlight);
            else
                
    $highlight=preg_replace("/<code>/i","<code class=\"block\">",$highlight);            
            
            if ( 
    $return === true )
            {
                return 
    $highlight;
            }
            else
            {
                echo 
    $highlight;
            }
        }
    ?>



    كود PHP:
    <?php // special
    function highlight_php($string)
    {
      
    $Line explode("\n",$string);  for($i=1;$i<=count($Line);$i++)
      {
        
    $line .= "&nbsp;".$i."&nbsp;<br>";
      }
        
      
    ob_start();
      
    highlight_string($string);
      
    $Code=ob_get_contents();
      
    ob_end_clean();
      
      
    $header='<table border="0" cellpadding="0" cellspacing="0" width="95%" style="border-style: solid; border-width:1px; border-color: white black black white">
        <tr>
          <td width="100%" colspan="2"  style="border-style: solid; border-width:1px; border-color: white; background-color: #99ccff; font-family:Arial; color:white; font-weight:bold;">Php-Code:</td>
        </tr>
        <tr>
          <td width="3%" valign="top" style="background-color: #99ccff; border-style: solid; border-width:1px; border-color: white;"><code>'
    .$line.'</code></td>
          <td width="97%" valign="top" style="background-color: white;"><div style="white-space: nowrap; overflow: auto;"><code>'
    ;  $footer=$Code.'</div></code></td>
        </tr>
      </table>'
    ;  return $header.$footer;
    } print 
    highlight_php('<? print "Xp"; ?>');?>

    كلها فيها نفس المشكلة :looking:.


    أتمنى الرد عاجلاً , وشكراً.









  2. #2
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    161


    وعليكم السلام ورحمة الله وبركاته
    أخوي قبل التمرير يجب إزالة الـslashes باستخدام stripslashes
    كود PHP:
    <form method="post" action="<?=basename(__FILE__);?>">
    <textarea cols="50" rows="10" name="code"></textarea><br/>
    <input type="submit" value="highlight the code" />
    </form>

    <?php
    $str
    =stripslashes($_POST['code']);
    highlight_string($str);
    ?>






    __________________
    سـبـحـان الله، والـحــمــد لله، ولا إلـه إلا الله، والله أكـــبـــــر.

  3. #3
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    جرب stripslashes ، مثال سريع لتطبيق بسيط:

    كود PHP:
    <?php

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {

        echo 
    highlight_string(stripslashes($_POST['code']), true);

    } else {
        echo 
    '
        <form method="post">
            <textarea name="code" cols="20" rows="7"></textarea><br><input type="submit">
        </form>
        '
    ;
    }

    ?>
    تحياتي، أشرف السمهوري





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  4. #4
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    ALMimoni آسف ما شفت ردك ..





    __________________
    # اتبعني على Twitter
    # عِرفان ساهم ببناء المحتوى العربي العلمي على الإنترنت!

  5. #5
    عضو فعال
    تاريخ التسجيل
    Aug 2007
    المشاركات
    1,431


    جزاكم الله حير جميعاً اخواني .. ضبط ولله الحمد

    شكراً لكم.






  6. #6
    عضو نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    161








    __________________
    سـبـحـان الله، والـحــمــد لله، ولا إلـه إلا الله، والله أكـــبـــــر.





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض