首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP数组中的文本文件&搜索字符串

PHP数组中的文本文件&搜索字符串
EN

Stack Overflow用户
提问于 2011-08-06 18:34:17
回答 2查看 1.4K关注 0票数 0

我花了很长时间努力地寻找这样做的答案&什么都没想出来。我知道这里有人会有答案的。

首先,我获取URL并从开始抓取子网站:

代码语言:javascript
复制
<?php
// get page URL
    $pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
    $pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
        $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    } else {
        $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
    }
// get host name from URL
    $url = preg_replace('(https?://)', '', $pageURL);
    $affUrl = explode('.', $url);
    $aff = $affUrl[0];
?>

如果URL为affiliate1.domain.com,则返回affiliate1$aff

接下来,我在每一行上都有一个不同名称的affiliates.txt

代码语言:javascript
复制
affiliate1
affiliate2
affiliate-3 (yes, this is correct)

然后,我将该文件读入数组中:

代码语言:javascript
复制
<?php
// read affiliates.txt and create array
    $affs = file("affiliates.txt"); 

// search for affiliate in array
    $inarray = array_search($aff, $affs); // i've tried in_array() also
    if ($inarray !== false) echo '<img src="affiliatelogos/$aff.jpg" class="aff-img" alt="$aff" />';
?>

然而,即使我硬编码一个附属公司的名称到array_search()

代码语言:javascript
复制
    $inarray = array_search('affiliate1', $affs);

它什么也不回。,我在这里做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-06 18:39:11

每一行都包含一个换行符,您可以通过向"file“函数提供一个标志来忽略它们:

代码语言:javascript
复制
$affs = file('affiliates.txt', FILE_IGNORE_NEW_LINES);
票数 3
EN

Stack Overflow用户

发布于 2011-08-06 18:39:05

尝试微调数组中的所有值,以删除尾随空格和新行字符。这是最简单的方法:

代码语言:javascript
复制
array_walk($affs, create_function('&$val', '$val = trim($val);')); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6968812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档