1

私は、ステートメントがこれらのコードのファイルを検索する場合にこれを行うための適切な方法を考え出すのに1つの地獄を持っています。読み取るテキストファイルを次のように設定しました。

myfile.txt

r)
0Y7
1a6
q.
@g
@(
#a
!P
T[
V}
0,

これが私が行ったことの簡単な説明です。

$subject = file_get_contents(fvManager_Path . 'myfile.txt');
if ( preg_match('/^[a-zA-Z0-9,]+$/',$result['fmbushels_itemCode'], $subject) ) { 

基本的に、テキストファイルを1行ずつ検索して、文字列全体が存在するかどうかを確認しようとしています。大文字と小文字も区別されます。

$ result ['fmbushels_itemCode']はSQLクエリからのものであり、常に上記のようなコードをテキストで返します。

これについて助けていただければ幸いです。誰かがこれや別のコマンドを実行するためのより良い方法を知っているなら、私もそれを試してみようと思います:)

編集:

private function _fvShareBushels() {
$subject = file_get_contents(fvManager_Path . 'myfile.txt');

if (count($vShareArray) > 0) {
$vCntMoves = count($vShareArray);

for ($vI = 0;$vI < $vRunMainLoop;$vI++) {
sell $result['fmbushels_itemCode']);    
}
}
}

これは大きなコードのスニペットです。ポストの制限のため、私はほとんどを引き裂かなければなりませんでした。私が作業できる領域は次のとおりです。

if (count($vShareArray) > 0) {

私がこれを次のようにすることができれば:

if (count($vShareArray) > 0 && $result['fmbushels_itemCode'] **is not in** $subject) {
4

1 に答える 1

1

行ごとに実行する場合は、file()関数を使用します。

$f = file(fvManager_Path . 'myfile.txt');
foreach($f AS $line){
    // $line is current line at file
}

preg_matchがどのように機能するかを完全に理解しているかどうかはわかりません。最初のパラメーターは正規表現パターン、2番目はパターンを一致させるもの、3番目は一致の配列です。したがって、2番目のパラメーターで一致する有効なパターンごとに、配列に新しいインデックスが作成されます。

私はあなたが成し遂げようとしていることに100%ではありません。$result['fmbushels_itemCode']ファイルにが存在するかどうかを確認しようとしていますか?

上記が正しい場合は、次のようなことを行う必要があります。

$f = file('myfile.txt');
array_map('trim', $f);
if(in_array($result['fmbushels_itemCode'], $f)){
    // success
}
于 2012-07-03T20:28:40.033 に答える