タグ付けされた質問 「php」

PHPは、主にサーバー側のWeb開発用に設計された、広く使用されている、高レベルで動的なオブジェクト指向の解釈されたスクリプト言語です。PHP言語に関する質問に使用されます。

19
致命的なエラー:クラス 'ZipArchive'が見つかりません
Linuxサーバーに「Archive_Zip 0.1.1」をインストールするという問題がありますが、スクリプトを実行してzipファイルを作成しようとすると、致命的なエラーが発生します 致命的なエラー:クラスZipArchiveが見つかりません... コードを置く場所 $zip = new ZipArchive; var_dump($zip); $res = $zip->open($filename, ZipArchive::OVERWRITE); if ($res !== TRUE) { echo 'Error: Unable to create zip file'; exit; } if (is_file($src)) { $zip->addFile($src); } else { // echo "<br>" . dirname(__FILE__) . $src;//'/install1'; if (!is_dir($src)) { $zip->close(); @unlink($filename); echo 'Error: File not …
181 php  zip  ziparchive 

12
配列をファイルに出力する
配列をファイルに出力したいのですが。 このようなコードがどのように見えるかのように、ファイルをまったく同じように見せたいです。 print_r ($abc); $ abcが配列であると仮定します。 外観ごとに通常ではなく、このための1行のソリューションはありますか? PS-私は現在シリアライズを使用していますが、シリアライズされた配列では可読性が非常に難しいため、ファイルを読みやすくしたいと考えています。
180 php  serialization 


5
Composerの開発/本番スイッチを使用するときに正しくデプロイする方法は?
Composerには、開発中にのみいくつかの依存関係をロードするオプションがあるため、ツールは本番環境(ライブサーバー上)にインストールされません。これは、(理論的には)テスト、fake-data-tools、デバッガなど、開発でのみ意味のあるスクリプトに非常に便利です。 進む方法はrequire-dev、devで必要なツールを使用してブロックを追加することです。 "require-dev": { "codeception/codeception": "1.6.0.3" } そして(理論的には)これらの依存関係を介してロードします composer install --dev 問題と質問: 作曲はの振る舞いを変更したinstallとupdate劇的に2013年に、require-dev-dependenciesは現在デフォルトでインストールされている(!)、とcomposer.jsonを作成すること自由に感じrequire-devブロックと実行composer installに再現します。 デプロイする最も受け入れられている方法として、コンポーザーをプッシュすることです。ロック(現在のcomposer設定を保持)composer installしてから本番サーバーでを実行すると、開発コンポーネントもインストールされます。 -dev依存関係をインストールせずにこれをデプロイする正しい方法は何ですか? 注:ここでは、奇妙なComposerデプロイメントを明確にするために、標準的なQ / Aを作成しようとしています。この質問は自由に編集してください。

11
単一のWebページで複数のMySQLデータベースにどのように接続しますか?
いくつかのデータベースに情報が分散しているため、PHPを使用してすべての情報を1つのWebページに配置したいと考えています。単一のPHP Webページで複数のデータベースに接続するにはどうすればよいかと思っていました。 私は以下を使用して単一のデータベースに接続する方法を知っています: $dbh = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL"); ただし、複数の「mysql_connect」コマンドを使用して他のデータベースを開くことはできますか?複数のデータベースが接続されている場合、PHPはどのデータベースから情報を取得するかをどのようにして知ることができますか?
179 php  mysql 

19
キャッシュされ、PHPで生成されたサムネイルの読み込みが遅い
質問パート A▉(100バウンティ、受賞) 主な質問は、このサイトをより速くロードする方法です。まず、これらの滝を読む必要がありました。ウォーターフォールの読み出し分析に関するご提案をありがとうございます。ここに示されているさまざまなウォーターフォールグラフから明らかなのは、主なボトルネックであるPHPによって生成されたサムネイルです。Davidの助言による、CDNからのプロトコルのないjqueryの読み込みは、サイトの全体的なボトルネックに答えずにサイト全体を3%だけ高速化しましたが、私の賞金を獲得しました。私の質問を明確にするための時間、そしてもう一つの賞金: 質問パート B▉(100バウンティ、受賞) 新しい焦点は、6つのjpg画像が持つ問題を解決することでした。これにより、読み込み遅延のほとんどが発生しています。これらの6つの画像は、PHPで生成されたサムネイルで、サイズはわずか3〜5 kbですが、読み込みが非常に遅くなります。さまざまなグラフの「最初のバイトまでの時間」に注目してください。問題は未解決のままでしたが、報奨金がジェームズに送られました。ジェームズは、RedBotが下線を引いたヘッダーエラーを修正しました:「If-Modified-Since条件付きリクエストがコンテンツ全体を変更せずに返しました。」。 質問パート C▉(私の最後の報奨金:250ポイント) 残念ながら、REdbot.orgヘッダーエラーでさえ修正された後、PHPで生成された画像による遅延はそのまま残りました。これらの小さなちっぽけな3〜5Kbのサムネイルは一体何を考えているのですか?そのすべてのヘッダー情報は、ロケットを月に送り返したりすることができます。すでに7か月間このボトルネックの問題に悩まされているため、このボトルネックに関する提案は高く評価され、可能な限りの回答として扱われます。よろしくお願いします。 [私のサイトの背景情報:CSSが一番上にあります。下部のJS(Jquery、JQuery UI、購入したメニューawm / menu.jsエンジン、タブjsエンジン、ビデオswfobject.js)2番目の画像の黒い線は、何をロードするかを示しています。怒っているロボットは私のペット「ZAM」です。彼は無害で、しばしば幸せです。] 負荷の滝:時系列 | http://webpagetest.org グループ化された並列ドメイン | http://webpagetest.org Site-Perfウォーターフォール | http://site-perf.com Pingdom Tools Waterfall | http://tools.pingdom.com GTmetrixウォーターフォール | http://gtmetrix.com

13
ベストプラクティス多言語ウェブサイト
私はこの質問にかなりの数か月間苦労してきましたが、私は以前にすべての可能なオプションを検討する必要があった状況にありませんでした。今は、可能性を知り、自分の個人的な好みを作成して、今後のプロジェクトで使用する時がきたと感じています。 最初に私が探している状況をスケッチしましょう これからずっと使っているコンテンツ管理システムをアップグレード/再開発しようとしています。しかし、私は多言語がこのシステムの大きな改善だと感じています。以前はフレームワークを使用していませんでしたが、次のプロジェクトではLaraval4を使用します。Laravelは、PHPをコーディングするためのよりクリーンな方法の最良の選択のようです。Sidenote: Laraval4 should be no factor in your answer。プラットフォームやフレームワークに依存しない一般的な翻訳方法を探しています。 翻訳すべきもの 私が探しているシステムは、できるだけユーザーフレンドリーである必要があるため、翻訳の管理方法はCMS内にある必要があります。翻訳ファイルやhtml / php解析済みテンプレートを変更するためにFTP接続を開始する必要はないはずです。 さらに、おそらく追加のテーブルを作成する必要なしに、複数のデータベーステーブルを変換する最も簡単な方法を探しています。 何を思いついたの 私はすでに自分で物事を探して、読んで、試しています。私にはいくつかのオプションがあります。しかし、私はまだ自分が本当に求めているもののベストプラクティスの方法に到達したようには感じていません。現在、これは私が思いついたものですが、この方法には副作用もあります。 PHP解析済みテンプレート:テンプレートシステムはPHPで解析する必要があります。このようにして、テンプレートを開いて変更することなく、翻訳されたパラメーターをHTMLに挿入できます。その上、PHPで解析されたテンプレートを使用すると、言語ごとにサブフォルダーを作成する代わりに、Webサイト全体に対して1つのテンプレートを使用できます(以前に使用していた)。このターゲットに到達する方法は、Smarty、TemplatePower、Laravel's Blade、またはその他のテンプレートパーサーのいずれかです。私が言ったように、これは書かれた解決策に依存しないはずです。 データベース駆動:おそらく私はこれについて再度言及する必要はありません。しかし、ソリューションはデータベース主導である必要があります。CMSはオブジェクト指向およびMVCを目的としているため、文字列の論理データ構造について考える必要があります。私のテンプレートは構造化されているので:templates / Controller / View.phpこの構造はおそらく最も理にかなっています:Controller.View.parameter。データベーステーブルには、これらのフィールドとvalueフィールドが含まれます。テンプレート内では、次のような並べ替えメソッドを使用できecho __('Controller.View.welcome', array('name', 'Joshua'))、パラメータにはが含まれますWelcome, :name。したがって、結果は次のとおりWelcome, Joshuaです。:nameなどのパラメーターはエディターが理解しやすいので、これはこれを行うための良い方法のようです。 低データベース負荷:もちろん、これらの文字列が移動中にロードされている場合、上記のシステムはデータベース負荷の負荷を引き起こします。したがって、管理環境で編集/保存されるとすぐに言語ファイルを再レンダリングするキャッシュシステムが必要になります。ファイルが生成されるため、適切なファイルシステムレイアウトも必要です。私たちは一緒に行くことができますねlanguages/en_EN/Controller/View.phpかの.ini、どんなスーツあなたが最高。おそらく、.iniは、最終的にはさらに速く解析されます。これにはのデータが含まれているはずformat parameter=value; です。レンダリングされる各ビューには、独自の言語ファイルが存在する場合はそれを含めることができるため、これがこれを行うための最良の方法だと思います。次に、言語パラメーターをグローバルスコープではなく特定のビューにロードして、パラメーターが互いに上書きされないようにする必要があります。 データベーステーブルの翻訳:これは実際、私が最も心配していることです。ニュース/ページ/その他の翻訳を作成する方法を探しています。できるだけ早く。モジュールごとに2つのテーブル(たとえばNewsおよびNews_translations)を使用することもできますが、優れたシステムを実現するために多くの作業を行うように感じます。私はに基づいていて思いついたことのひとつdata versioning、私が書いたシステムは:1人のデータベーステーブル名がありTranslations、このテーブルはのユニークな組み合わせを持っているlanguage、tablenameとprimarykey。たとえば、en_En / News / 1(ID = 1の英語版のニュースアイテムを参照)。ただし、この方法には2つの大きな欠点があります。まず、このテーブルはデータベースに大量のデータがあるとかなり長くなる傾向があります。次に、この設定を使用してテーブルを検索するのは大変です。たとえば、アイテムのSEOスラッグを検索することは全文検索であり、かなり馬鹿げています。しかし、その一方で、すべてのテーブルで翻訳可能なコンテンツを非常に高速に作成する簡単な方法ですが、このプロが短所を強調しすぎているとは思いません。 フロントエンドの作業:また、フロントエンドについても検討する必要があります。もちろん、利用可能な言語をデータベースに保存し、必要な言語を(非)アクティブにします。このように、スクリプトはドロップダウンを生成して言語を選択でき、バックエンドはCMSを使用してどの翻訳を実行できるかを自動的に決定できます。ビューの言語ファイルを取得するとき、またはWebサイトのコンテンツアイテムの適切な翻訳を取得するときに、選択した言語(en_ENなど)が使用されます。 それで、彼らはそこにいます。これまでの私の考え。日付などのローカリゼーションオプションはまだ含まれていませんが、私のサーバーはPHP5.3.2 +をサポートしているため、http://devzone.zend.com/1500/internationalization-inで説明されているように、intl拡張機能を使用することをお勧めします。-php-53 / -しかし、これはその後の開発スタジアムで使用されます。現時点では、主な問題は、Webサイトのコンテンツの翻訳のベストプラクティスをどのように行うかです。 ここで説明したすべてのことに加えて、まだ決めていないことがまだあります。簡単な質問のように見えますが、実際には頭痛の種となっています。 URL変換?これをするべきかどうか?そしてどのように? つまり、このURLがある場合http://www.domain.com/about-us、英語がデフォルトの言語です。http://www.domain.com/over-ons言語としてオランダ語を選択した場合、このURLを翻訳する必要がありますか?または、簡単な道を進み、に表示されているページのコンテンツを変更するだけ/aboutです。最後のものは、同じURLの複数のバージョンを生成するため、有効なオプションではないように思われます。このコンテンツのインデックス作成は、正しく失敗します。 別のオプションはhttp://www.domain.com/nl/about-us代わりに使用しています。これにより、少なくともコンテンツごとに一意のURLが生成されます。また、別の言語に移動するのも簡単です。たとえばhttp://www.domain.com/en/about-us、提供されるURLは、Googleと人間の両方の訪問者にとって理解しやすくなります。このオプションを使用して、デフォルトの言語をどのように処理しますか?デフォルトの言語で、デフォルトで選択されている言語を削除する必要がありますか?リダイレクトようhttp://www.domain.com/en/about-usにhttp://www.domain.com/about-usCMSが一つだけの言語用のセットアップのときURLで、この言語識別を持ってする必要がないので、私の目には...これは、最適なソリューションです。 …

12
奇妙なPHPエラー:「書き込みコンテキストで関数の戻り値を使用できません」
このエラーが発生し、頭または尾を作成できません。 正確なエラーメッセージは次のとおりです。 致命的なエラー:/home/curricle/public_html/descarga/index.phpの48行目の書き込みコンテキストで関数の戻り値を使用できません 48行目は: if (isset($_POST('sms_code') == TRUE ) { ここで何が起こっているのでしょうか? これが完全な関数です: function validate_sms_code() { $state = NOTHING_SUBMITED; if (isset($_POST('sms_code') == TRUE ) { $sms_code = clean_up($_POST('sms_code')); $return_code = get_sepomo_code($sms_code); switch($return_code) { case 1: //no error $state = CORRECT_CODE; break; case 2: // code already used $state = CODE_ALREADY_USED; break; …
178 php  fatal-error 

7
CodeIgniter:新しいヘルパーを作成しますか?
多くの配列をさまざまな方法でループし、ページに表示する必要があります。配列はモジュールクラスによって生成されます。「ビュー」に関数を含めない方がよいことはわかっています。関数ファイルを挿入する場所を知りたいです。 ヘルパーを「拡張」できることはわかっていますが、ヘルパーを拡張したくありません。ループ関数を使ってヘルパーを作成したいのですが、loops_helper.phpという名前にしましょう

11
配列に複数の要素があるかどうかを確認するより良い方法はどれですか?
配列に複数の要素があるかどうかを確認するだけです。私はそれをこのようにしようとしています: if (isset($arr['1'])) 他の伝統的な方法は if (sizeof($arr)>1) どちらが良いですか?そのような状況では、2つの代替方法をどのように判断すればよいですか?どちらが優れているかを測定するために使用できるパフォーマンスチェックメーターはありますか?
177 php  arrays 

10
ベストプラクティス:PHPで長い複数行の文字列を操作する
注:これが非常に単純な質問である場合は申し訳ありませんが、コードのフォーマット設定についてはやや強迫的です。 メールの本文を構成する文字列を返す関数を持つクラスがあります。このテキストをフォーマットして、電子メールで正しく見えるようにしたいのですが、コードがファンキーに見えないようにしています。これが私の意味です: class Something { public function getEmailText($vars) { $text = 'Hello ' . $vars->name . ", The second line starts two lines below. I also don't want any spaces before the new line, so it's butted up against the left side of the screen."; return $text; } } しかし、次のように書くこともできます。 …
177 php  string 


12
関数でのデフォルト引数の使用
PHP関数のデフォルト値について混乱しています。次のような関数があるとします。 function foo($blah, $x = "some value", $y = "some other value") { // code here! } $ xにデフォルトの引数を使用し、$ yに別の引数を設定したい場合はどうなりますか? 私はさまざまな方法で実験をしており、混乱しているだけです。たとえば、次の2つを試しました。 foo("blah", null, "test"); foo("blah", "", "test"); しかし、これらは両方とも$ xの適切なデフォルト引数にはなりません。また、変数名で設定しようとしました。 foo("blah", $x, $y = "test"); 私はこのようなものが機能することを完全に期待していました。しかし、私が期待したようにはまったく機能しません。私が何をしても、関数を呼び出すたびに、とにかくデフォルトの引数を入力しなければならないようです。そして、私は明らかな何かを見逃しているに違いありません。
177 php  arguments  default 

9
curlを使用してPHPでHTTPコードを取得する
CURLを使用して、サイトがアップ/ダウンしている場合や別のサイトにリダイレクトしている場合に、サイトのステータスを取得しています。できる限り合理化したいのですが、うまく機能していません。 <?php $ch = curl_init($url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_TIMEOUT,10); $output = curl_exec($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); return $httpcode; ?> これを関数にラップしました。正常に動作しますが、ページ全体をダウンロードするため、パフォーマンスは最高ではありません。削除する$output = curl_exec($ch);と0、常に戻ります。 パフォーマンスを向上させる方法を知っている人はいますか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.