循环遍历每行第一个数字的文本文件

时间:2015-12-22 15:21:00

标签: php

下面的代码适用于每行的第一个单词,但如何获得每行的第一个数字?请记住,号码可以是1位数,也可以是20位数

<?php
    $file = new SplFileObject("/tmp/test.txt", "r");
    $data = array();
    while(! $file->eof()) {
         $data[] = array_shift(($file->fgetcsv("|")));
    }
    echo implode(",", $data);
?>

2 个答案:

答案 0 :(得分:2)

这将获得字符串中的第一个数字:

public class API {

public static let baseURL: String = "http://colourlovers.com/api"

public enum Endpoints {

    case Colors(String)
    case Palettes(String)
    case Patterns(String)

    public var method: Alamofire.Method {
        switch self {
        case .Colors,
             .Palettes,
             .Patterns:
            return Alamofire.Method.GET
        }
    }

    public var path: String {
        switch self {
        case .Colors:
            return baseURL+"/colors"
        case .Palettes:
            return baseURL+"/palettes"
        case .Patterns:
            return baseURL+"/patterns"
        }
    }

    public var parameters: [String : AnyObject] {
        var parameters = ["format":"json"]
        switch self {
        case .Colors(let keywords):
            parameters["keywords"] = keywords
            break
        case .Palettes(let keywords):
            parameters["keywords"] = keywords
            break
        case .Patterns(let keywords):
            parameters["keywords"] = keywords
            break
        }
        return parameters
    }
}

public static func request(
    endpoint: API.Endpoints,
    completionHandler: Response<AnyObject, NSError> -> Void)
    -> Request {

        let request =  Manager.sharedInstance.request(
            endpoint.method,
            endpoint.path,
            parameters: endpoint.parameters,
            encoding: .URL,
            headers: nil
            ).responseJSON { response in

                if (response.result.error) != nil {
                    DDLogError("\n<----\n" + response.result.error!.description)
                    completionHandler(response)
                } else {
                    DDLogInfo("\n<----\n" + response.response!.description)
                    completionHandler(response)
                }
        }
        DDLogInfo("\n---->\n" + request.description)
        return request
    }
}

Here's a fiddle.

答案 1 :(得分:0)

您提供的代码获取第一部分,而不是第一部分。 你必须使用foreach,array_walk,......来遍历数组。

例如:

<?php
$file = new SplFileObject("/tmp/test.txt", "r");
$data = array();
while(! $file->eof()) {
  foreach($file->fgetcsv("|") as $part)  {
    if (is_numeric($part))  { //or any other numeric check you like
      $data[] = $part;
      break;
    }
  }
}
echo implode(",", $data);
?>