下面的代码适用于每行的第一个单词,但如何获得每行的第一个数字?请记住,号码可以是1位数,也可以是20位数
<?php
$file = new SplFileObject("/tmp/test.txt", "r");
$data = array();
while(! $file->eof()) {
$data[] = array_shift(($file->fgetcsv("|")));
}
echo implode(",", $data);
?>
答案 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
}
}
答案 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);
?>