• 締切済み

PHPでエラーがでてしまって困っています。

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/MAMP/htdocs/5-2-1.php on line 30 このエラーを解消できません。 下記は実践マスターPHP+MYSQLという書籍のなかのサンプルなんですが、どこが間違っているかどなたか教えていただけないでしょうか? エラーを検索するとダブルクォーテーションの使い方が原因と書いてあるんですが、最近PHPを勉強したばかりでどうやっても解決できません。 function check_3(&$str){ $str =str_replace($GLOBALS["from"],$GLOBALS["to"],$str);  ←この行でエラー global $msg; $msg = $GLOBALS["from"].'から'.$GLOBALS["to"].'へ置換しました!<br>'; return strlen($str); } 宜しくお願いします。

みんなの回答

noname#138894
noname#138894
回答No.1

エラーはその行数で起きているとは限らないので、 全ソースをそのまま記載して下さい。

kazmacha
質問者

お礼

自分で入力間違いなどをすべて確認していって、なんとかエラーはなくなり表示できました。ありがとうございました。 やったことは、ファイルを二つにわけて、入力誤りがないか、しらべていきました。

kazmacha
質問者

補足

<?php //◎ :5-2ユーザー定義関数を使う(関数) //URLをリンクに変換 function check_1(&$str){ //URLをリンクタグに変更 $check ="{(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)}; $str = preg_replace($check,'<a href =\"$1$2\" target=\"_blank\">$1$2</a>',$str); //メールアドレスをリンクタグに変更 $check = '/([a-zA-Z0-9_\.-]+\@)([a-zA-Z0-9_\.-]+)([a-zA-Z]+)/'; $str = preg_replace($check,'<a href = \"mailto:$1$2$3\">$1$2$3</a>',$str); global $msg; $msg = 'URLをリンクに変換しました!<br>'; return strlen($str); } //◎入力内容にあわせて改行する function check_2(&$str,$nagasa=0){ $str = nl2br($str); global $msg; $masg = '入力内容にあわせて改行しました!<br>'; return strlen($str); } //◎文字列を置換しました。 /*function check_3(&$str){ $str=str_replace($GLOBALS["from"],$GLOBALS["to"],$str); global $msg; $msg = $GLOBALS["from"].'から'.$GLOBALS["to"].'へ置換しました!<br>'; return strlen($str); }*/ //◎すべての関数を実行 function check_4(&$str){ check_1($str); check_2($str); check_3($str); global $msg; $msg ='すべての関数チェックを行いました♪<br>'; return strlen($str); } ?> <?php //◎:5-2 ユーザー定義関数を使う //■△●外部ファイルの取り込み require_once("./5-2-2.php"); //ユーザー定義関数ファイル //初期値設定□ $kubun = "1"; $content = ""; $from = ""; $to = ""; $postflg = "0"; //□POSTされたとき if($_SERVER["REQUEST_METHOD"]=="POST"){ $postflg = "1"; //関数テストするボタンの押下 if(isset($_POST["submit"])){ //●$_POSTから値を取得 //if(isset($_POST["kubun"])){ $kubun = $_POST["kubun"]; } $content = htmlspecialchars($_POST["content"],ENT_QUOTES); $from = htmlspecialchars[$_POST["from"],ENT_QUOTES]; $to = htmlspecialchars($_POST["to"],ENT_QUOTES); // 関数を呼び出す $func = "check_" .$kubun; $cont = $content; $value = $func($cont); } } ?> <html> <head> <meta http-equiv="Content-type" content="text/html;charset =UTF-8"> <title>●:5-2 ユーザー定義関数を使う</title> </head> <body> <h2>ユーザー定義関数テスト</h2> <?php //送信された内容を表示 if($postflg == "1"){ echo "<b>関数処理された内容</b><br>"; echo "<font color =\"#b2ce77\">"; echo $msg; echo "</font>"; echo "$cont<br>"; echo "内容の長さは<b>" .$value ."</b>バイトです<br>"; } ?> <hr> <form action = "<$_SERVER["PHP_SELF"]?>" method = "POST" enctype = "multipart/form-data"> <table border = "1" width = "600" cellspacing = "0" cellpading = "0"> <?php //処理区分 ?> <tr> <td align = "center" width = "150" bicolor = "#b2ce77">処理区分</td> <td align = "left" width = "450"> &nbsp;<input type = "radio" name = "kubun" value= "1"<?if ($kubun=="1"){echo "checked";}?>>URLをリンクに変換<br> &nbsp;<input type = "radio" name = "kubun" value= "2"<?if ($kubun=="2"){echo "checked";}?>>入力内容に合わせて改行する<br> &nbsp;<input type= "radio" name = "kubun" value="3"<?if($kubun=="3"){echo "checked";}?>> <input type = "text" name = "from" value = "<?=from?>">を<input type="text" name = "to" value = "<?=$to?>">に変換<br> &nbsp;<inputtype = "radio" name = "kubun" value="4"<if($kubun=="4"){echo "checked";}?>>上記のすべてを行う<br> </td> </tr> <?php //内容 ?> <tr> <td align = "center" width = "150" bicolor = "b2ce77">内容</td> <td align = "left" width = "450"> &nbsp;<textarea name = "content" cols="60" rows="10"><?=$content?></textarea> </td> </tr> </table> <br> <input rype = "submit" name = "submit" value = " 関数テストをする "> </form> </body> </heml>

関連するQ&A