問題タブ [str-replace]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 変数を持つPHPテンプレートクラス?
新しいプロジェクトの開発をより簡単にしたいと考えており、最小限の非常にシンプルなテンプレート エンジン ソリューションが必要でした。私はネットを見回しましたが、すべてが肥大化しすぎているか、私をうんざりさせています。
私のHTMLファイルは次のようになります:
明らかに、私は PHP で設定したものに{PAGE_TITLE}
andを置き換えたいと思っています。{PAGE_HEADER}
このような:
そして、次のようなものを使用str_replace
して、置き換えられた HTML を文字列にロードし、それをページに出力しますか? これは私が現在行っていることです...誰かアドバイスやこれをより良くする方法はありますか?
ありがとう。
php - str_replace と preg_replace はあるサーバーでは機能しますが、別のサーバーでは機能しません
更新: 結局のところ、以下は実稼働サーバーのキャッシュの問題が原因です。思慮深い回答を提供してくれたすべての人に感謝します。
次のようなURLを受け取るphpページに単純な関数があります。
http://myurl.com/mypage.html?param1=value1
そしてそれを次のように変換します:
http://myurl.com/searchpage.html?param1=value1
page.html の部分を入れ替えるだけです。
これを行うには、次を使用します。
上記のコードは正確なコードではありませんが、適切な表現です。1 つのサーバーでは問題なく動作しますが、本番環境にプッシュすると、preg_replace が機能しません。最初に str_replace を使用しようとしました。ローカルの開発マシンでも動作しますが、運用サーバーでは動作しません。
URL変数が正しく入っていることを確認しました。何か案は?
php - PHPテキストフォーマット:連続した複数の記号の検出
テキストの書式設定に本当に必要な奇妙なことがあります。なぜ私がこの奇妙なことをしたのか私に聞かないでください!;-)
したがって、私のPHPスクリプトは、すべての行の折り畳み「\n」を「|」のような特殊記号の1つに置き換えます。データベースにテキストデータを挿入すると、PHPスクリプトはすべての行の折り畳みを記号「|」に置き換えます。スクリプトがデータベースからテキストデータを読み取ると、すべての特殊記号「|」が置き換えられます。行折り"\n"付き。
各区切りテキストで2つ以上の行折りが使用されている場合に、行折りをカットするようにテキスト形式を制限したいと思います。
スクリプトでフォーマットするテキストの例を次に示します。
次のような形式を制限したい:
したがって、最初の例では2つのテキストの間に1行の折り畳みがあり、2番目の例では2つのテキストの間に3つの行の折り畳みがあります。
2つ以上の折り畳み記号「|」をどのように置き換えることができるか それらがテキストで検出された場合は?
これは、スクリプトに実行させたい一種の例です。
HM、問題があります!これは、テキストデータがPOSTメソッドで送信される場合は機能しません。これを見てください:
これがtextareaに入力したテキストで、str_replaceの後に次のように表示されます。
これが私のPHPとHTMLコードです:
php - 「\u00a0」の文字列があり、「」に置き換える必要がありますstr_replacefails
さまざまなMicrosoftOfficeスイートアプリケーション(Excel、Access、およびWord)からの(コピー/貼り付けされた)文字列を、それぞれ独自のエンコーディングセットでクリーンアップする必要があります。
エンコードされたすべての文字を表示できるようにするために、デバッグ目的でjson_encodeを使用しています。
これまでに見つけたもの(\ r \ n)はすべてstr_replaceでクリーンアップできますが、\u00a0では運がありません。
戻り値:
それはまったく同じです。\u00a0を完全に無視します。
これを回避する方法はありますか?また、私は車輪の再発明をしていると感じていますが、すべての可能なエンコーディングのすべての可能な文字を完全に取り除く関数/クラスはありますか?
____編集____
最初の2つの応答の後、実際の文字列ではなくjson_encodeからの出力であるため、私の例が機能することを明確にする必要があります。
php - テキスト内のキーワードをphpとmysqlに置き換える
100 万件を超えるニュースのアーカイブを含むニュース サイトを持っています。単語と定義のペアで構成される、約 3000 エントリの単語定義データベースを作成しました。
私がやりたいことは、ニュースでこれらの単語が出現するたびに定義を追加することです. 毎日新しいキーワードを追加できるため、静的な変更を行うことはできません。そのため、リアルタイムまたはキャッシュにすることができます。
問題は、astr_replace
または apreg_replace
がテキスト内の 3,000 のキーワードを検索して置換するのに非常に時間がかかるということです。
速い代替手段はありますか?
php - 2 つの数値文字列の間の str_replace
のもう 1 つの問題として、次のデータを先頭とダッシュ (-) の後の数字の間をとって URLstr_replace
に変更したいと思います。$title
$string
- シカゴ
'
の公立学校- $10.3M - ニュージャージー- 300万ドル
- ミシガン州: 公衆衛生- 100 万ドル
欲望の出力は次の
とおり
です
。
私が使用しているPHPコード
残念ながら、私が得た結果:
誰にもこれに対するより良い解決策がありますか? みんなありがとう!
(が amp9に'
変更されました - なぜだろうか? )
php - phpstr_replaceパターン
サーバーに画像を保存し、データベースに画像名を保存するphpアプリケーションがあります。私が抱えている問題は、画像名に保存元のパス/フォルダ(1220368812 / chpk2198933_large-2.jpgなど)が含まれているため、「1220368812 /」を削除して画像名を正しく保存するには、str_replaceパターンが必要です。 db。また、str_replaceパターンがどのように機能するか、または少なくとも使用するパターンがどのように機能するかを説明する適切なリンクを送っていただければ幸いです。
php - 配列の str_replace() と strpos() ?
私はいくつかの配列キーの名前を変更したデータの配列を扱っていますが、データは基本的に同じままにしておきたいです...基本的には、配列に格納されているデータを保持できるようにしたいですDB に関連付けられている配列キー名を更新したいと考えています。
以前は、配列は次のようになっていました。$var_opts['services'] = array('foo-1', 'foo-2', 'foo-3', 'foo-4');
現在、配列のキーには "foo" ではなく "bar" がプレフィックスとして付けられています。では、配列変数を更新して「foos」を取り除き、代わりに「bars」に置き換えるにはどうすればよいでしょうか?
そのようです:$var_opts['services'] = array('bar-1', 'bar-2', 'bar-3', 'bar-4');
私はすでにif(isset($var_opts['services']['foo-1'])) { unset($var_opts['services']['foo-1']); }
fooを取り除くために使用しています...各fooをバーに置き換える方法を理解する必要があります。
配列全体で str_replace を使用すると思っていましたが、残念なことに、配列ではなく文字列でのみ機能します (図を参照してください)。
php - 最初の正規表現の一致をスキップする方法は?
とにかく、正規表現とphpを使用するときに最初の一致をスキップすることはありますか?
または、str_replaceを使用してこれを実現する方法はありますか。
ありがとう
UPDATE ある文字列のすべてのインスタンスを別の文字列から削除しようとしていますが、最初の出現を保持したいです。
出力文字列は次のようになります。
これは、単語testを削除するためにテストするテスト文字列です
php - エスケープ文字
json_encode
PHP 5.3.0で実装されたビットマスクフラグを模倣しようとしています。これが私が持っている文字列です:
実行json_encode($s, JSON_HEX_APOS | JSON_HEX_QUOT)
すると、次のように出力されます。
そして、私は現在、5.3.0より前のPHPバージョンでこれを行っています:
同じ結果を正しく出力します。
なぜ一重引用符(または[周囲の引用符を除く])をだけでなく置き換える必要があるのか'\\\''
"\\'"
'\\\u0027'
'\\u0027'
理解できません。
PHP<5.3への移植で問題が発生しているコードは次のとおりです。