php-ni matn sifatida qabul qilish

birinchi navbatda mening PHP kodim. Ushbu kodni chiqishda matn sifatida olishga harakat qilaman. Buni qanday amalga oshirayotganimni bilmayman. html bilan biz buni \ " ni PHP ichida kiritish uchun qila olamiz, ammo buni qanday qilib kodimga o'xshash qilib olaman?

<?php
$stringData = "

   //Start here

    <?php
    $width = $_GET['width'];
    $heigh = $_GET['height'];

        echo 'Hello';

    ?>
   //End here

    ";
?>

Men matnni matn sifatida qabul qilmoqchi bo'lgan qismni belgilab qo'ydim, lekin men shunga o'xshash so'zni kiritganimda sintaksik xato noto'g'ri ekanligini bilmayman.

# 2 tahrirlang

Bu erda mening to'liq kodim va kodimning qanday ishlashini tushuntiraman. Mening kodim sahifani yaratish va o'sha sahifaning ichiga biror narsa qo'yishdir

<form method="post">
    
<input type='text' name='filename' placeholder='page name'>


<input type='text' name='strin' placeholder='content of created page'> <input type='submit' value='Add Feed'> </form> <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { //the name of the file to create $filename=$_POST['filename']; //the name of the file to be in page created $strin=$_POST['strin']; //the name of the folder to put $filename in $thisFolder = $_POST['thisfolder']; //make sure #thisFolder of actually a folder if (!is_dir(__DIR__.'/'.$thisFolder)) { //if not, we need to make a new folder mkdir(__DIR__.'/'.$thisFolder); } //. . . /[folder name]/page[file name].php $myFile = __DIR__.'/'.$thisFolder. "/page" .$filename.".php"; $fh = fopen($myFile, 'w'); $stringData = " <?php $width = $_GET['width']; $heigh = $_GET['height']; echo ''; ?> "; fwrite($fh, $stringData); fclose($fh); } ?>

amalga oshirmoqchi bo'lgan narsa, yaratiladigan ushbu sahifaga $ stringData </​​code> ichidagi PHP kodini yuborishdan iborat

0
Siz u erda o'zgaruvchilardan farq qilmaysiz, lekin agar siz eval ($ stringData) ni ishlatgan bo'lsangiz,
qo'shib qo'ydi muallif AbraCadaver, manba

6 javoblar

highlight_string ichki funksiyasidan foydalanish

echo highlight_string($stringData);

or using htmlspecialchars

echo htmlspecialchars($stringData);

EDIT, siz php-kodni chiqishingizga to'g'ridan-to'g'ri chop etishni istamaguningizcha [sizning sharhingizda aytib o'tganingizdek]

bu erda siz PHP da maxsus ma'noga ega bo'lgan qadriyatlarni saqlash uchun foydalanadigan (er-xotin tirnoq)

yechim sizning matnni bitta tirnoq ichida saqlash,

<?php
$stringData = '

   //Start here

    <?php
    $width = $_GET["width"];
    $heigh = $_GET["height"];

        echo "Hello";

    ?>
   //End here

    ';
?>
1
qo'shib qo'ydi
Bu yaxshi, omad
qo'shib qo'ydi muallif hassan, manba
qanday bo'lishi mumkinligini tekshiring 3v4l.org/TA2MO , kod echo kodidan keyin bajaradi, bu degani bu o'zgaruvchan deklaratsiya to'g'ri edi
qo'shib qo'ydi muallif hassan, manba
javobni yangilashni tekshiring
qo'shib qo'ydi muallif hassan, manba
@MmPp, $ stringData </​​code> dizgisida yozilgan PHP kodini tekis matn sifatida chop etishni istaysizmi?
qo'shib qo'ydi muallif hassan, manba
rahmat yoki vaqtingiz aziz, lekin @JediBurrell buni men uchun tuzatdi va u har bir dollar belgisi oldida "
qo'shib qo'ydi muallif Mm Pp, manba
Men bitta qoutni sinab ko'rmadim
qo'shib qo'ydi muallif Mm Pp, manba
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
qo'shib qo'ydi muallif Mm Pp, manba
aziz sizning javoblarimdagi kodimni tahrir qilib, tushuna olaman. PHP haqida ko'p narsa bilmayman
qo'shib qo'ydi muallif Mm Pp, manba

Matningizda $ 'dan qochishingiz kerak.

Quyidagi kabi $ stringData </​​code> ni o'rnating:

$stringData = "

// Start here

<?php
\$width = \$_GET['width'];
\$heigh = \$_GET['height'];

    echo 'Hello';

?>
// End here

";
1
qo'shib qo'ydi
Agar ishlayotgan bo'lsa, iltimos buni qabul qilingan deb belgilang. Rahmat!
qo'shib qo'ydi muallif JediBurrell, manba
PHP ning qaysi versiyasini ishlatasiz?
qo'shib qo'ydi muallif JediBurrell, manba
Javobni tahrir qildim.
qo'shib qo'ydi muallif JediBurrell, manba
qo'shib qo'ydi muallif JediBurrell, manba
@MmPp Menga elektron pochta orqali yuboring.
qo'shib qo'ydi muallif JediBurrell, manba
Men seni e-mail orqali yubordim va qayta aytilmadi
qo'shib qo'ydi muallif Mm Pp, manba
Siz u erda qaroqchi. Faqat suhbatni so'rashingiz mumkin bo'lsa, menga biroz yordam kerak
qo'shib qo'ydi muallif Mm Pp, manba
Bir savol bro. sizdan JavaScript va phpni o'rganishni xohlaymanmi, qancha savol berasiz? Men tahrirlashda birozgina bilaman
qo'shib qo'ydi muallif Mm Pp, manba
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
qo'shib qo'ydi muallif Mm Pp, manba
Ishlamadim, men hali ham sintaksik xatolarni qabul qildim
qo'shib qo'ydi muallif Mm Pp, manba
php-yulduz va yopiq teglar bilan bu erda boshlangan va bu erda tugagan kod matn sifatida bo'lishi kerak
qo'shib qo'ydi muallif Mm Pp, manba
Iltimos, mening kodimni ekansiz va menga qanday qilib ko'rsatilsin? javobingizda
qo'shib qo'ydi muallif Mm Pp, manba

Bitta tirnoqli ( ') bo'lmaydi satr ichida $ variables dan foydalanish imkonini beruvchi er-xotin tirnoq ( ") dan foydalanmoqdasiz.

shunga o'xshash:

$color = 'red';  

$string_one = "My car is $color."
echo $string_one;//My car is red.

$string_two = 'My car is $color.'
echo $string_two;//My car is $color.

So to fix your code you simply need to change the double quotes to single quotes (and escape [put a backslash before] the other single quotes).
shunga o'xshash:

<?php
$stringData = '

   //Start here

    <?php
    $width = \$_GET[\'width\'];
    $heigh = \$_GET[\'height\'];

        echo \'Hello\';

    ?>
   //End here

    ';
?>
1
qo'shib qo'ydi
Men kodni faqat tushuntirish bro bilan chatga yubordim
qo'shib qo'ydi muallif Mm Pp, manba
vaqtingiz va javobingiz uchun juda minnatdorman, lekin @JediBurrell buni o'zgartirdi. va escape [oldingi tersk tomonga qo'ying] ga ishora qilganingiz kabi, bu muammoni hal qildi
qo'shib qo'ydi muallif Mm Pp, manba
Buni xursand qildingizmi!
qo'shib qo'ydi muallif Justin Taddei, manba

Sizning kodingiz

?>
   //End here must be in out put

    ";
?>

there is not start PHP dellimiter <?php

To'g'ri:

?>
   //End here must be in out put
<?php
    ";
?>

Siz yana bitta PHP dellimiterni tanqid qildingiz, jami 2:

<?php
$stringData = "
**?>**
   //Start here must be in out put
    <?php
    $width = $_GET['width'];
    $heigh = $_GET['height'];

        echo '';

    ?>
   //End here must be in out put
**<?php**
    ";
?>
0
qo'shib qo'ydi
aziz ko'ring. php-da juda ko'p narsani bilmayman, lekin bu $ stringData </​​code> o'zgaruvchiga to'g'ridan-to'g'ri nomlangan?
qo'shib qo'ydi muallif Mm Pp, manba
Bu erda boshlash va bu erda tugatish kerak
qo'shib qo'ydi muallif Mm Pp, manba
Men kodni yangiladim
qo'shib qo'ydi muallif Mm Pp, manba

Sizning kodingizda men qo'shildim:

<?php
$stringData = '

   //Start here

    <?php
    $width = $_GET["width"];
    $heigh = $_GET["height"];

        echo "Hello";

    ?>
   //End here

    ';

    echo $stringData;
?>

Ushbu phap-sahifani ochganimda brauzerda bo'lganman:

// Bu yerdan boshlang//Ending here

Sahifa manbasi ko'rinishida quyidagilar bor edi:

// Start here

    <?php
    $width = $_GET["width"];
    $heigh = $_GET["height"];

        echo "Hello";

    ?>
   //End here

Hech qanday xato yo'q! Endi siz nimalar qilayotganingizni ko'rmoqdaman.

0
qo'shib qo'ydi
qo'shib qo'ydi muallif b2ok, manba

Ushbu kod "(string) $ narxiga" ishlaydi:

<?php
$price = 10;

$stringData = "start here (string) $price end here";

echo $stringData;

echo "(string) $price";

?>
0
qo'shib qo'ydi
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin