gpt4 book ai didi

php - 有条件地从字符串中删除一个单词?

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:09 25 4
gpt4 key购买 nike

我找到的答案与我正在寻找的答案相似,但没有完全解决我的问题。

用户点击我页面上的链接,将他们带到 Google 图书并进行搜索。但是,如果书名中的第一个单词包含缩略语,所有内容都会丢失,我的更正似乎都不起作用。

例子:我页面上的链接如下所示:

mysite.com/book-search?bookauthor=Lance Armstrong&booktitle=It's Not About the Bike

但是,当我运行这个时:

$bookTitle = $_GET['booktitle']

我得到了相同的标题,只是去掉了“It's”中的撇号。这足以完全摆脱 Google 图书搜索并且不返回任何结果。

执行搜索的 cURL session 端点如下所示:

https://www.googleapis.com/books/v1/volumes?q=intitle:' . $bookTitle . '+inauthor:' . $bookAuthor;

自己试试吧

https://www.googleapis.com/books/v1/volumes?q=intitle:It%27s+Not_About+The+Bike+inauthor:Lance+Armstrong

返回与

完全不同的结果

https://www.googleapis.com/books/v1/volumes?q=intitle:Its+Not_About+The+Bike+inauthor:Lance+Armstrong

您可能会认为,如果我对字符串进行 urlencode 编码,就可以解决问题。但事实并非如此。不过,出于我无法理解的原因,当我这样做时:

$google_endpoint_a = 'https://www.googleapis.com/books/v1/volumes?q=intitle:' . urlencode($bookTitle) . '+inauthor:' . urlencode($bookAuthor);

...当 urlencoding 被传递给 GoogleAPI 时,它被删除,我再次得到零结果搜索。

有人可以帮我解决这个问题吗?我已经尝试了所有我能想到的方法。

哦 - 这是奖励 - 只有当字符串中的第一个单词包含撇号时才会发生这种情况。所以它发生在像“这不是关于自行车”和“不要眨眼”这样的书名中。换句话说,撇号似乎并不重要。 (例如作者 Bil​​l O'Reilly。)

如果第一个单词包含撇号,是否有一种简单的方法可以将其从字符串中删除?或者有更好的方法吗?

真正丑陋的解决方案:

所以 PHP 通过 urldecode() 传递 $_GET 变量。因此,尽管它很丑陋,但这就是我最终解决问题的方法,尽管我希望有人能想出更好的方法。

在通过 URL 传递变量之前,我用一串乱码替换了撇号,如下所示:

$booktitle = str_replace("'", "W5x32RS97", $booktitle);

然后运行这个:

$bookTitleTemp = $_GET('booktitle');
$bookTitle = str_replace("W5x32RS97", "'", $bookTitleTemp);

突然之间,一切正常。但一定有更好的方法。

最佳答案

您是否尝试过在标题字符串中用\替换 '?我的意思是,而不是:It's Not About the Bike,使用这个:It\'s Not About the Bike

关于php - 有条件地从字符串中删除一个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com