2016-09-07 31 views
0

OK,在PHP字符串查找的字符后“/”和使用Array改变它,如果它的存在

我有这样

$url = "http://www.foo.com/foo/Dynamic_Words_Here/_/Some Text in Here";

一个链接,我可以改变的值(有些在这里文本)与

$search = array('OR', 'OF', 'ON', 'IN', 'AND', 'The'); 
$replace = array('or', 'of', 'on', 'in', 'and', 'the'); 
$smad= str_replace($search, $replace, $smad); 

但有时(“有些” - 字符串>第一个字)的一部分可能与“中”和上面的脚本会改变它开始以“”但我不希望我t对于每一种情况...

我需要另一个数组仅用于字符串的第一个字,并且可能会导致某些字符串的其他数组的重写,我不知道该怎么做。

- >编辑 - >更具体的问题是,我从Youtube Api获得一些结果进行搜索,然后在另一个网站上搜索结果的标题,但该网站有时不符合我的搜索也就是说这就是为什么我想这个和示例:

$url = "searchthissite.com/_/search Me Now"; - > [我的YouTube搜索标题]必须 - >

$url = "searchthissite.com/_/Search me Now"; - > [什么网站希望]

所以我需要1个数组为第一个字和另一个数组为 的字符串。

<?php 
$str = "http://www.foo.com/foo/Dynamic_Words_Here/_/in Some Text in Here"; 

$test= "in"; 

if (preg_match("/\b$test\b/", $str)) { 

     $search = array('in'); 
     $replace = array('In'); 
     $str= str_replace($search, $replace, $str); 

    echo $str; 
} 
?> // OUTPUT IS http://www.foo.com/foo/dynamic/_/In Some Text In Here 
    // I need this for First Word Only and ANOTHER for The Rest of The String. 

谢谢。

+1

不知道你问,也不知道为什么你需要这样做由于使用curl() – nogad

+0

如果您是网址的最后一部分分离到另一个变量(从而消除了HTTP部分),可以使用['strpos' ](http://php.net/manual/en/function.strpos.php)检查'The'的第一个出现是否在位置0.如果你没有分开字符串,那么你可以查找'\ The ' –

+0

我编辑我的回答更具体@nogad – TheCoffee

回答

3

这不是CURL区分大小写。这是HTTP。该模式部分的URL是不区分大小写,因为它们是由客户端UA和DNS处理,但因为它直接处理的URL 路径部分是区分大小写由远程主机。

https://www.google.com/abouthttps://www.google.com/About绝对不是一回事,因为服务器预计的是​​而不是/About

我并不完全了解您是如何首先解决URL错误的问题的,因此目前尚不清楚如何解决该潜在问题。

然而,你似乎试图做的是什么PHP的ucfirst()函数可能会与strtolower()结合使用。

echo ucfirst(strtolower("Some Text in Here")); // Some text in here 

strtolower将首先noramlize的字符串全部小写,然后ucfirst只会把第一个字符的字符串为大写英寸由于此功能可与您的区域设置一起使用,因此您可能需要考虑多字节字符。详情请参阅setlocale()

+0

嘿谢谢你的时间,我编辑我的问题是更具体:) – TheCoffee

相关问题