改行を含んだ場合の空白について

このQ&Aのポイント
  • Zend_Dom_Queryを使ってHTMLを読み込み、得られた配列には空白のような値が入ってきてしまいます。
  • 文字をmb_substrで分割するときに空白が入り込んでいます。
  • 空白を消す方法を教えてください。
回答を見る
  • ベストアンサー

改行を含んだ場合の空白について

Zend_Dom_Queryを使ってHTMLを読み込み、そこで抽出した文字列を 1文字ずつ分解して配列に収める作業を下のプログラムではしているのですが、 得られた配列には空白のような値が入ってきてしまいます・・・ どうやら下の場合は<BODY>~</BODY>間にある改行が原因(改行なしで<BODY>あいう</BODY>なら空白は発生しませんでした) らしいのですが、文字をmb_substrで分割するときに入り込んでいるようなのです。 その空白をプログラムでマッチさせて消そうとしたのですが、emptyとかnullとかいろいろ試したのですが その空白にはマッチしないのです・・・ どうやればこの空白を消せることができるのでしょうか? $doc = <<<EOF <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <TITLE></TITLE> <BODY> あいう </BODY> </HTML> EOF; $dom_query = new Zend_Dom_Query(); $dom_query->setDocument($doc); $results = $dom_query->query("body"); $arr = array(); foreach ($results as $domelement) { $str = $domelement->nodeValue; } $enc = mb_detect_encoding($str, 'ASCII,JIS,UTF-8,EUC-JP,SJIS'); $res = array(); while ($len = mb_strlen($str, $enc)) { array_push($res, mb_substr($str, 0, 1, $enc)); $str = mb_substr($str, 1, $len, $enc); } print_r($res);//Array ( [0] => [1] => [2] => あ [3] => い [4] => う [5] => [6] => ) //↓マッチしない if(empty($res[0])) { unset($res[0]); }

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

思いつきで書いてるので、見当違いな事いってるかもしれません。 その空白を ord() すると なんて出ます? print ord($res[0]); empry()自体 使う事がないので 動作が良く分かってないんですけど、空白と認識しない以上は なんか入ってるんだろうなと思うのですが。 あと、trim() してみても一緒ですかね?

takagoo100
質問者

お礼

ご回答ありがとうございます。 trim() で除去できました!ありがとうございます。 ordの方は、 print ord($res[0]);//13 print ord($res[1]);//10 print ord($res[2]);//227 print ord($res[3]);//227 という結果でした。 この結果からどういうことが推測できるのでしょうか?

その他の回答 (1)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

> この結果からどういうことが推測できるのでしょうか? ↓アスキーコード表 http://www.cppll.jp/cppreference/ascii.html 227が何かは分かりませんが、13と10は Windowsの改行コードですね。 CRLF とか \r\n とかで表現されるものです。 Linuxだと LFのみ、Macだと CRのみ とかの改行コードだったように記憶してます。

takagoo100
質問者

お礼

ご回答ありがとうございます。 なるほど、参考になりました。

関連するQ&A

  • PHPからMySQLを操作

    お世話になっております。 PEAR::MDB2をインストールし、PHPからクエリーを発行してDBへデータを登録したく思っています。 しかし、「MDB2 Error: syntax error」というエラーがでてしまいます。 クエリーは間違っていないはずです。他のPCでの動作は確認できています。 プログラム /* foreach($str1 as $key => $value){ $sql = "INSERT INTO book_content(author, name, date, publish, path, content) VALUES('".cnv_sqlstr(cnv_dbstring($value, $db_enc))."', '".cnv_sqlstr(cnv_dbstring($str2[$key], $db_enc))."', '".cnv_sqlstr(cnv_dbstring($str3[$key], $db_enc))."', '".cnv_sqlstr(cnv_dbstring($str5[$key], $db_enc))."', '".cnv_sqlstr(cnv_dbstring($str4[$key], $db_enc))."', '".cnv_sqlstr(cnv_dbstring($str6[$key], $db_enc))."');"; // クエリを発行 $res =& $mdb2->query($sql); // 結果がエラーでないかどうかを常にチェック if (PEAR::isError($res)) { die($res->getMessage()); } } */ どなたかアドバイスお願いします。 PHPバージョン Version 5.2.10-2ubuntu6.3 Apacheバージョン 2.2.12-1ubuntu2.1 OS Linux ubuntu 2.6.31-16-generic

    • ベストアンサー
    • PHP
  • 「checkText3」が処理されない

    とあるHOWTO本を見ながら、独学でPHPを勉強中です。 サンプルプログラムを動作させようとマニュアル通りに記述してみたのですが、一部分だけが上手く処理されません。 付属CDに収められているphpファイル自体がこのような記述になっている為、マニュアル自体に間違いがあるのかな?と思うのですが、 どこがおかしいのか解らずにいます。 お分かりになる方がいれば、ご教授願えませんでしょうか? 上手く処理されないのは「//テキストチェック3.バイバイされたらバイバイを返す」の部分です。 よろしくお願い致します<(_ _)> <?php $res = ""; if(isset($_POST['text1']) == false) {$res = getAisatsu();} else{$text1 = $_POST['text1']; if($text1 == "") {$res = "え? なんていったの?";} else{$flag =false; //まずcheckTextであいさつ文をチェック $str = checkText($text1); if($str != false) {$flag = true; $res = $str; } //続いてcheckText2で悪口の対応 if($flag == false) {$str = checkText2($text1); if($str != false) {$flag = true; $res = $str; } } //最後にcheckText3でさよならの対応 if($flag == false) {$srt = checkText3($text1); if($str != false) {$flag = true; $res = $str; } } //すべてダメならテキストを分解してチェック if($flag == false) {$arr = bunkatsu($text1); foreach($arr as $str) {if(getWordCheck($str) == true) {$flag = true; $res = $str . "って、なぁに?"; break; } } } //それでもダメなら全文で聞き返す if($flag == false) {$res = delTouten($text1) . "って、なぁに?";} } } //時間によって異なるあいさつ文を返す function getAisatsu(){ $arr = array('……ね、眠い','おはよう!','こんにちは~','こんばんわ',); $d = getdate(); $t = $d['hours']; $t2 = (int)($t / 6); return $arr[$t2]; } //テキストチェック。あいさつ文があれば対応する挨拶を返す function checkText($s){ if($s == ""){return false;} $res = false; $data = array('こんにちは','こんにちわ','こんちは','こんちわ'); foreach($data as $str) {if (mb_strpos($s,$str) !== false) {$res = 'どうも、' . $str . '!'; break; } } return $res; } //テキストチェック2.悪口が書かれていたら文句をいう function checkText2($s) {if ($s ==""){return false;} $res = false; $data = array('バカ','馬鹿','あほ','アホ','阿呆'); foreach($data as $str) {if(mb_strpos($s,$str) !== false) {$res =$str . 'じゃないもん!'; break; } } return $res; } //テキストチェック3.バイバイされたらバイバイを返す function checkText3($s) {if ($s == ""){return false;} $res = false; $data = array('ばいばい','バイバイ','じゃあね'); foreach($data as $str) {if(mb_strpos($s,$str) !== false) {$res = 'それじゃ' . $str . '!'; break; } } return $res; } //句読点を削除する function delTouten($s) {$res = str_replace('。','',$s); $res = str_replace('?','',$res); $res = str_replace('!','',$res); $res = str_replace('.','',$s); $res = str_replace('?','',$res); $res = str_replace('!','',$res); return $res; } //テキストを句読点で分割し、配列として返す function bunkatsu($s) {mb_regex_encoding("sjis"); $res = mb_ereg_replace('[。、?!,.!?]','',$s); $arr = mb_split(' ',$res); return $arr; } //主語や接続詞が含まれているかを調べる function getWordCheck($s) {if ($s == ""){return false;} $res = $s; $data = array('私','わたし','僕','ぼく','俺','おれ','オレ'); foreach($data as $str) {if(mb_strpos($s,$str) !== false) {$res = false; break; } } return $res; } //サニタライズ function getSeftyText($s) {$res = str_replace("<","<",$s); $res = str_replace(">",">",$res); return $res; } ?>

    • ベストアンサー
    • PHP
  • 2つの検索フォームのリーベンシュタイン距離を求める

    タイトルの通りですが、2つの検索フォームのリーベンシュタイン距離を求めようとして頓挫して困っています。 最終的に 距離 ◯=◯ マッチ率 ◯◯(検索フォーム1)と〇〇(検索フォーム2)は◯%マッチ と正常に表示させたいです。 (1)HTMLで2つの検索フォームを作成し(ファイル名:formleven.html)、 ※ここでは仮に名前のリーベンシュタインを求めるとします。 <html> <body> <form action = "formleven.php" method="post">    名前1:<input type="text" name="nm"> と    名前2:<input type="text" name="nm2">    <input type="submit" name="exec" value="検索"> </form> </body> </html> (2)次にPHPで(ファイル名:formleven.php) <html> <head> <title>formleven.php</title> </head> <body> <?php /* マルチバイト文字列、英数字の混じった文字列を1文字ずつ配列に分割 $a = $_POST['nm']; $b = $_POST['nm2']; function mbStringToArray($string, $encoding = 'UTF-8') { $arrayResult = array(); while ($iLen = mb_strlen($string, $encoding)) { array_push($arrayResult, mb_substr($string, 0, 1, $encoding)); $string = mb_substr($string, 1, $iLen, $encoding); } return $arrayResult; } /* 編集距離を求める(マルチバイト文字対応) function LevenshteinDistance($str1, $str2, $costReplace = 2, $encoding = 'UTF-8') { $count_same_letter = 0; $d = array(); $mb_len1 = mb_strlen($str1, $encoding); $mb_len2 = mb_strlen($str2, $encoding); $mb_str1 = mbStringToArray($str1, $encoding); $mb_str2 = mbStringToArray($str2, $encoding); for ($i1 = 0; $i1 <= $mb_len1; $i1++) { $d[$i1] = array(); $d[$i1][0] = $i1; } for ($i2 = 0; $i2 <= $mb_len2; $i2++) { $d[0][$i2] = $i2; } for ($i1 = 1; $i1 <= $mb_len1; $i1++) { for ($i2 = 1; $i2 <= $mb_len2; $i2++) { //$cost = ($str1[$i1 - 1] == $str2[$i2 - 1]) ? 0 : 1; if ($mb_str1[$i1 - 1] === $mb_str2[$i2 - 1]) { $cost = 0; $count_same_letter++; } else { $cost = $costReplace; //置換 } $d[$i1][$i2] = min($d[$i1 - 1][$i2] + 1, //挿入 $d[$i1][$i2 - 1] + 1, //削除 $d[$i1 - 1][$i2 - 1] + $cost); } } return $d[$mb_len1][$mb_len2]; return array('distance' => $d[$mb_len1][$mb_len2], 'count_same_letter' => $count_same_letter); } $text = array('$a', '$b'); foreach($text as $row) { echo levenshtein($row[0], $row[1]); echo ' = '; echo LevenshteinDistance($row[0], $row[1]); echo '<br/>'; } $Key = "$a"; $words = array( '$b'); $matches = array(); header('Content-Type: text/html; charset=utf-8'); foreach ($words as $word) { $c = similar_text($Key, $word, $percent); $buf = $Key. ' と ' .$word. ' は ' .intval($percent). '% マッチ('.$c.')'; echo mb_convert_encoding($buf, 'SJIS', 'UTF-8'); $percent = print number_format($percent, 1, '.', ''); echo "<br/> "; $matches[intval($percent)] = $word; } ?> </body> </html> と書いているのですが、これで仮に、片方のフォームに「goodあ」、片方の検索フォームに「best」と入力すると、出力結果が、 1 = 2 1 = 2 good�� $b 0% }b`(0)0.0 ・・・となります。 どういうわけか1 = 2 ←どのような文字列でもこの数値で固定されます。 おそらく「$a、$b」をフォームから受け取らずにそのまま読んでいるのだと思います。 かつ、1 = 2 が、2つも結果が表示されてしまいます。 マッチ率に関しても同様に文字化けしており、$a(1つめの検索フォーム)がローマ字のみ読み込みますが、マルチ文字を読み込まずに文字化けします。 $b(2つ目の検索フォーム)に関しても、2つめの検索フォームから受け取ってさえいないように見受けます。 これらを綺麗に、 距離 ◯=◯ マッチ率 ◯◯(検索フォーム1)と〇〇(検索フォーム2)は◯%マッチ と表示させるのはどう書き換え、付け足したらよいでしょうか・・・? 未熟な知識ゆえ、稚拙な文章で恐縮ですが、改善方法をご存じの方がいらっしゃいましたら、ご教授・ご指摘のほど頂けたら幸いに存じ上げます。

    • ベストアンサー
    • PHP
  • スレッドについて(長文です)

    現在スレッドについて独学しています。array[0]に文字列を格納してそれを表示し、3秒間経った後に他のスレッドに通知し繰り返すというプログラムを作りたいのですが、以下のソースでコンパイルすると 5行目 型の開始が不正です  try{ ^ 6行目 <identifier>がありません  } ^ 18行目 シンボルを解釈処理できません シンボル:メソッドres(java.lang.String) 位置:Proのクラス pro.res(str2); ^ というコンパイルエラーがでます。模範解答と見比べてもかなりの部分が違います。このやり方では実現できないのでしょうか?なにぶん初心者なもので正しい答えとかけ離れた次元のプログラムを書いているかもしれませんがよろしくお願いします。 class Pro extends Thread{ String str; String array[] = new String[1]; try{ synchronized void res(String str){ this.str = str; array[0] = str; System.out.println(array[0]); Thread.sleep(((int)(Math.random() * 10) * 50) + 500); array[0] = "empty"; Thread.sleep(3000); notifyAll(); } } catch(Exception e1){ e1.printStackTrace(); } } class User extends Thread{ String str2; Pro pro; User(String str2,Pro pro){ this.str2 = str2; this.pro = pro; } public void run(){ while(true){ try{ if((pro.array[0]).equals("empty")){ pro.res(str2); } else{ wait(); } } catch(Exception e2){ e2.printStackTrace(); } } } } class NewRikai6{ public static void main(String args[]){ Pro pro = new Pro(); User user1 = new User("user1",pro); user1.start(); User user2 = new User("user2",pro); user2.start(); } }

    • ベストアンサー
    • Java
  • HTMLページにPHPで処理した結果を表示したい

    以下の【HTML】内にPHPの結果を表示したいと思い、試行錯誤していますが、うまくできません。 ※http://xxx.com/ISL/ISLPage.php?query1=apple をブラウザで実行すると正常に表示されます。 たぶん、header("Content-type: application/x-javascript"); を 【ISLPage.php】か【ISLModule.php】のどこかに書きこんで 【ISLModule.php】の$html []= あたりに、echo "document.write・・・ に直せば できそうな気がするのですが、具体的にどうすれば、表示されるかが分かりません。(>_<;) 既に数十回トライしましたが、どうしてもダメでしたので、どうかご教示いただければと思います。 申し訳ございませんが、どうかよろしくお願い致します。 【HTML】 <html> <body> </body> <script type="http://xxx.com/ISL/ISLPage.php?query1=apple"></script> </html> 【ISLPage.php】 <html> <body> <?php include_once("./ISLModule.php"); echo $_GET['query1']; new ISLModule(array( "query" => $_GET['query1'], "hits" => 3 )); ?> </body> </html> 【ISLModule.php】 <?php class ISLModule { function __construct($param = array()) { $results = array(); if ($param['query'] != "") { $query4url = rawurlencode($param['query']); try { $url = "http://xxxxx/ … buildQuery($param); $xml = simplexml_load_file($url); if ($xml["totalResultsReturned"] != 0) { $results = $xml->Result->Hit; } } catch(Exception $e) { } } $result['query'] = $param['query']; $result["results"] = $results; ISLModule::display($result); } function display($param = array()) { $html = array(); $html []= "<div class=\"YSAPISDK\">"; $html []= "<div class=\"ISLModule\">"; $html []= "<h1>「" . h($param['query']) . "」の検索結果</h1>"; foreach ($param["results"] as $result) { $html []= "<div class=\"Item\">"; $html []= "<p><a href=\"" . h($result->Url) . "\"><img src=\"" . h($result->Image->Small) . "\" /></a></p>"; $html []= "<h2><a href=\"". h($result->Url) . "\">" . h($result->Name) . "</a></h2>"; if (!is_null($result->PriceLabel->SalePrice)) { $html []= "<p class=\"Price\">". h($result->Price). "円</p>"; } $html []= "</div>"; } $html []= "</div>"; $html []= "</div>"; echo join("\n", $html); } } ?>

    • 締切済み
    • PHP
  • str_get_htmlがこける原因を知りたい

    よろしくお願いします。 PHP であるサイトをスクレイピングしているのですが、str_get_htmlが特定?のページだけ処理が失敗します。 例えば、1ページ~10ページ目までをスクレイピングしているときに、8ページ目だけ失敗します。 str_get_htmlの処理に失敗する原因って何々あるんでしょうか? 以下は、サーバ・PHPの情報になります。 ・サーバ:さくらのレンタルサーバ スタンダード ・PHP -v 5.4.22 ・ソース $HTML = file_get_contents($url); $encode_HTML = mb_convert_encoding($HTML, 'UTF-8', 'CP932'); $Dom = str_get_html($encode_HTML); // ここで$Domに値がはいっていないのを確認しました。 // print_r($encode_HTML); はHTMLソースにはなってました。 if ($Dom){ echo "OK"; }else{ echo "NG"; continue; }

    • ベストアンサー
    • PHP
  • レーベンシュタイン距離とマッチ率を同時に出したい

    タイトル通り、EclipseのPHPで任意の単語同士のリーベンシュタイン距離、それらのマッチ率を出したいのですが、以下のところまで出来たのですがどん詰り状態で困っています。 転載が長いので先に質問を書いておきます。 最終的な形としては、 ・「リーベン距離○=○ 、 マッチ率 AとBは○%マッチ」のような形で一緒に表示させたい。(できれば1~など改行ごとに番号もふりたい) ・マッチ率の表示もマルチバイトのエンコードで文字化けさせないようにしたい。 …です。 現段階では、リーベン距離はしっかり表示されますが、出力後のリーベン距離の数字それぞれの間に、文字化けしたマッチ率が入り込んでしまいます。 稚拙な質問の仕方で恐縮ですが、解決法をご存じの方がいらっしゃいましたら御教授のほどよろしくお願い申し上げます。 (以下転載) <?php * マルチバイト文字列、英数字の混じった文字列を1文字ずつ配列に分割 function mbStringToArray($string, $encoding = 'UTF-8') { $arrayResult = array(); while ($iLen = mb_strlen($string, $encoding)) { array_push($arrayResult, mb_substr($string, 0, 1, $encoding)); $string = mb_substr($string, 1, $iLen, $encoding); } return $arrayResult; } * レーベンシュタイン距離を求める(マルチバイト文字対応) function LevenshteinDistance($str1, $str2, $costReplace = 2, $encoding = 'UTF-8') { $count_same_letter = 0; $d = array(); $mb_len1 = mb_strlen($str1, $encoding); $mb_len2 = mb_strlen($str2, $encoding); $mb_str1 = mbStringToArray($str1, $encoding); $mb_str2 = mbStringToArray($str2, $encoding); for ($i1 = 0; $i1 <= $mb_len1; $i1++) { $d[$i1] = array(); $d[$i1][0] = $i1; } for ($i2 = 0; $i2 <= $mb_len2; $i2++) { $d[0][$i2] = $i2; } for ($i1 = 1; $i1 <= $mb_len1; $i1++) { for ($i2 = 1; $i2 <= $mb_len2; $i2++) { //$cost = ($str1[$i1 - 1] == $str2[$i2 - 1]) ? 0 : 1; if ($mb_str1[$i1 - 1] === $mb_str2[$i2 - 1]) { $cost = 0; $count_same_letter++; } else { $cost = $costReplace; //置換 } $d[$i1][$i2] = min($d[$i1 - 1][$i2] + 1, //挿入 $d[$i1][$i2 - 1] + 1, //削除 $d[$i1 - 1][$i2 - 1] + $cost); } } return $d[$mb_len1][$mb_len2]; return array('distance' => $d[$mb_len1][$mb_len2], 'count_same_letter' => $count_same_letter); } *求めたいリーベン距離のテキストのサンプル(長いので4つだけ書き出します) $text = array( array('ath', '八'), array('ath', 'oktōu'), array('ath', 'eight'), array('ath', 'acht'), ); foreach($text as $row) { echo levenshtein($row[0], $row[1]); echo ' = '; echo LevenshteinDistance($row[0], $row[1]); echo '<br/>'; *求めたい単語のマッチ率を求める(マルチバイト対応のやり方が不明のためこのままだと文字化けする) $Key = "ath"; $words = array( '八', 'oktōu', 'eight', 'acht', ); $matches = array(); foreach ($words as $word) { $c = similar_text($Key, $word, $percent); echo $Key. ' と ' .$word. ' は ' .intval($percent). '% マッチ('.$c.')'; echo "<br/> "; $matches[intval($percent)] = $word; } } ?> (転載終わり) これらを実効出力すると、 3 = 4 ath 縺ィ 蜈ォ is 0% similar(0) ath 縺ィ oktナ講 is 22% similar(1) ath 縺ィ eight is 25% similar(1) ath 縺ィ acht is 57% similar(2) 5 = 6 ath 縺ィ 蜈ォ is 0% similar(0) ath 縺ィ oktナ講 is 22% similar(1) ath 縺ィ eight is 25% similar(1) ath 縺ィ acht is 57% similar(2) 4 = 6 ath 縺ィ 蜈ォ is 0% similar(0) ath 縺ィ oktナ講 is 22% similar(1) ath 縺ィ eight is 25% similar(1) ath 縺ィ acht is 57% similar(2) 2 = 3 ath 縺ィ 蜈ォ is 0% similar(0) ath 縺ィ oktナ講 is 22% similar(1) ath 縺ィ eight is 25% similar(1) ath 縺ィ acht is 57% similar(2) と、リーベンは大丈夫でも他がめちゃめちゃになってしまっている状況です。 恐縮ですが、御教授のほど、よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • ODBCでデータ抽出エラー

    下記プログラムを実行すると、データ抽出エラーとなってしまいます。 <?php $dsn = "database_4"; $user = ""; $pass = ""; $enc_disp = "EUC-JP"; $enc_db = "SJIS"; function cnv_enc($string, $to, $from) { $det_enc = mb_detect_encoding($string, $from . ", " . $to); if ($det_enc and $det_enc != $to) { return mb_convert_encoding($string, $to, $det_enc); } else { return $string; } } $conn = odbc_connect($dsn, $user, $pass) or die("接続エラー"); $sql = "SELECT music_0_ID,大分類,日本語作曲家名,日本語曲名 FROM music ORDER BY music_0_ID"; $res = odbc_exec($conn, $sql) or die("データ抽出エラー"); echo "<table border=\"1\">"; echo "<tr>"; echo "<td>ID</td>"; echo "<td>大分類</td>"; echo "<td>日本語作曲家名</td>"; echo "<td>日本語曲名</td>"; echo "</tr>"; while ($row = odbc_fetch_row($res)) { echo "<tr>"; echo "<td>".odbc_result($res, "music_0_ID")."</td>"; echo "<td>".cnv_enc(odbc_result($res, "大分類"), $enc_disp, $enc_db)."</td>"; echo "<td>".cnv_enc(odbc_result($res, "日本語作曲家名"), $enc_disp, $enc_db)."</td>"; echo "<td>".odbc_result($res, "日本語曲名")."</td>"; echo "</tr>"; } echo "</table>"; odbc_close($conn); ?> デバッグすると、解決できるでしょうか?PHP5.3.6.0を使用しているため、Zend Debuggerをインストールすべきか迷っています。また、Apacheでなく、IIS7.0を使用しています。アンインストールして、XAMPPを使用すべきでしょうか?また、リモートデバッグをする場合、PCが2台(サーバとクライアント)必要になるのでしょうか?

    • ベストアンサー
    • PHP
  • jqueryで外部ファイル読み込んだ後の動作

    jqueryで外部ファイル読み込んだ後、読み込んだ外部ファイルに記述されたIDに対しての操作をしたいんですが、うまく行きません。 ブラウザに読み込ませるHTML(main.html) <html> <head> <script type="text/javascript" src="jquery.js"></script> <script> $(function(){ $("#main").load("loadfile.html"); }); $("#str").html("50"); </script> </head> <body id="main"> </body> </html> #mainに読み込ませるHTML(loadfile.html) <html> <head> </head> <body> <p id="str">00</p> </body> </html> 自分なりの予想ではloadfile.htmlを読み込んだ後、 まだDOM要素が操作できない状態の時に$("#str").html("50"); が実行されてしまっていると思われますが、 こういう時は.ready()とかをうまく使うのでしょうか? 基本がまだ身についていなく、 とんちんかんな質問かもしれませんが、よろしくお願いします。

  • zendを使っている人に質問です

    zendのバージョンは1.11.7です。 勉強がてらzendformを試しています。 なんとなくですがフォームを表示をするとこまではできました。 デフォルトではエラーメッセージが英語なので下記のように 全ての原文を翻訳して設定しなければならないようでかなり 手間な感じがします。 さらに「名前は必須項目です」というような各項目のエラーメッセージを 自由に設定したいと思っております。 '$adapter = new Zend_Translate( 'array', array( "'%value%' is an empty string" => "必須項目です", "'%value%' does not match against pattern '%pattern%'" => "'%value%' は '%pattern%' にマッチしません。", ) ); $this->setTranslator($adapter); 探してみたのですが全てのエラーメッセージの原文を表示している サイトも見つからずzendformについて日本語の情報が少な過ぎでした。 表示には、smartyを使うのでフォームをsmartyで表示しエラーチェックを zendでするのもアリかなとも考えたのですがせっかくなのでzendformで 実装したいというところも。。。 情報が少ないことからも事実上あまり使われていないのでしょうか? 絶対にzendformで実装したいということではないのですが使っている人の ご意見を聞きたいので自分はこのようにやっているなどアドバイスなどでも 構いませんので詳しい方がいっらしゃいましたら教えてください!

    • 締切済み
    • PHP

専門家に質問してみよう